일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 선형회기모델
- 회귀모델
- 데이터
- 해석
- 데이터 수집
- python
- Deep Learning
- tensorflow
- 데이터베이스
- 데이터전처리
- sklearn
- HeidiSQL
- python기초
- 데이터 분석
- 파이썬
- 알고리즘기초
- MariaDB
- SQL예제
- Database
- pandas
- 시각화
- 데이터 가공
- 정확도
- pythone
- 예측
- 머신러닝
- 크롤링(crawling)
- 딥러닝
- 훈련
- keras
- Today
- Total
코딩헤딩
python 기초 11 (정규식 Regular Expression) 본문
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
*문자 표현식
^ : 시작, 위치에 따라 부정의 의미 => ^\d 숫자로 시작하면
$ : 끝 => \d$ 숫자로 끝나면
. : 문자(한 글자) =>.. 이면 두 글자
\d : 숫자 ( 숫자 하나 )
\s : 공백 (tab, space, 줄바꿈(\n), 캐리지리턴(CR))
\w : 한개의 문자 또는 숫자 포함
[] : 범위 => -[abc]( a 또는 b 또는 c ), [a-z], [1-9], [A-Z]
*수량 한정자
* : 0이상 반복 => '', "aa", "aaaaaaaa" \w* (True)
+ : 1번이상 반복 => ''(False), "aa"(False), "a"(True)
? : 0 or 1회 반복
{m} : m만큼 반복 => {3}
{n, m} : n회 이상, m회 이하
(ab) : 그룹화 => 'ab', 'abab', 'abababab' (True)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
예시 1) 전화번호 형식이 맞는지에 대한 프로그램
*정규식을 적용하지 않을 때
def chk_num(phone_num):
if len(phone_num) != 13:
return False
if phone_num[0:3] != '010':
return False
if phone_num[3] != '-':
return False
for i in range(4, 8):
if not phone_num[i].isdecimal():
return False
if phone_num[8] != '-':
return False
for i in range(9, 13):
if not phone_num[i].isdecimal():
return False
return True
print('010-3333-6666 : =>', chk_num('010-3333-6666'))
결과 : 010-3333-6666 : => True
print('000-3333-6666 : =>', chk_num('000-3333-6666'))
결과 : 000-3333-6666 : => False
정규식을 적용하지 않으면 코드가 길어진다. 이렇게 길어진 코드는 정규식을 사용하면 간략하게 나타낼 수 있다.
*정규식 사용
import re
pattern = '010-\d\d\d\d-\d\d\d\d'
str = '제 휴대폰 번호는 010-1111-2222입니다.'
found = re.search(pattern, str)
print('휴대폰 번호 형식은 : ', found.group())
결과 : 휴대폰 번호 형식은 : 010-1111-2222
1. 정규식을 사용하기 위한 모듈을 import 한다.
2. 휴대폰 번호의 정규식 작성
3. re.search() 함수를 사용하여 변수 str에 들어 있는 문자열에서 `pattern` 변수에 지정한 패턴과 일치하는 부분을 찾는다.
4. 결과 출력
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
예시 2) 이메일 형식이 맞나 확인하는 프로그램
pattern = '^[\w]+@[\w]+\.[A-Za-z]{2,4}$'
def chk_email(email_addr):
if(re.fullmatch(pattern, email_addr)):
print(f'{email_addr}는 유효한 주소입니다.')
else:
print(f'{email_addr}는 잘못된 주소입니다.')
chk_email('ddasdf@gmail.com')
결과 : ddasdf@gmail.com는 유효한 주소입니다.
'^[\w]+@[\w]+\.[A-Za-z]{2,4}$'
1. 문자, 숫자, 하이픈, 마침표로 이루어진 문자열로 시작한다.
2. @ 기호로 구분된다.
3. 문자, 숫자, 하이픈, 마침표로 이루어진 문자열로 이어진다.
4. 마침표로 끝난다.
5. 영문 알파벳으로 이루어진 문자열로 끝난다.
'python' 카테고리의 다른 글
python 연습문제2 (도서관리 키오스크 프로그램 만들기) (2) | 2023.11.14 |
---|---|
python 기초 12 (예외처리) (1) | 2023.11.10 |
python 기초 10 (.txt / pickle 파일생성 및 쓰기 읽기) (2) | 2023.11.09 |
python 기초 9 (리스트 내 for 문/ List Comprehension) (1) | 2023.11.09 |
python 연습문제 (반복문while, list) (5) | 2023.11.09 |