파이썬, re 기능과 정규식 예제
글. 수알치 오상문
*: 바로 앞 문자, 하위 표현식이 0번 이상 반복
+: 바로 앞 문자, 하위 표현식이 1번 이상 반복
[] : 안에 있는 문자 중 하나가 나타남
() : 평가 우선순위 묶음
. : 1 문자
^ : 바로 뒤에 있는 문자가 (하위 표현식이 제일 앞에 나타남)
$ : 바로 앞에 있는 문자가 (하위 표현식이 제일 뒤에 나타남)
{m} : 바로 앞에 있는 문자가 m회 나타남
{m,n} : 바로 앞에 있는 문자가 m번 이상, n번 이하 나타남
| : | 표기로 분리된 문자, 문자열, 표현식 중 하나가 나타남
[^] : 안에 나타난 문자를 제외한 문자가 나타남
[0-9] : 숫자 == \d
[^0-9] : 숫자 아닌 문자 == \D
[a-z] : 소문자
[A-Z] : 대문자
[a-zA-Z0-9] : 모든 알파벳과 숫자
\d : 숫자, (r'\d\d\d': 세자리 숫자)
\D : 숫자 아닌 문자
\s : 공백문자
\S : 공백이 아닌 문자
\w : 알파벳 문자와 숫자
\W : 알파베 문자나 숫자가 아닌 문자
r'co+w' : c로 시작하고 o가 0회 이상, 끝이 w인 단어 : cw, cow, cooow
r'[0-9]+-[0-0]+ : 숫자-숫자 1-2, 12-1, 123-456
r'(010|016)-[0-9]{4}-[0-9]{4}' : 010-1234-5678
re 객체 함수
-------------------------------------------------------------
compile : 정규식 객체 생성 후 반환
r = re.compile(r'[0-9]{3}')
m = r.search(text)
print(m)
search() : text 내용에 찾는 대상이 포함되었는지 검사
match() : text 시작 기준으로 찾기
findall() : 목록(list) 받기
sub() : 찾은 대상으로 교체하기
group() : 일치 결과를 그룹별로 분리
groups() : 그룹 분리된 결과를 튜플로 반환
# 정규식 예제
import re
text = "안녕하세요, 대한민국은 아름답습니다. 123, abc, 123-abc"
m = re.search(r'123', text)
if m != None:
print('찾는 값:', m.group())
start = m.start()
end = m.end()
print(f'찾았습니다. 시작 인덱스:{start}, 끝 이후 인덱스:{end}')
print('찾은 값:', text[start:end])
else:
print('찾을 수 없습니다.')
print('-'*40)
m = re.search(r'[0-9]{3}', text)
if m != None:
print('찾는 값:', m.group()) # 찾는 값
start = m.start()
end = m.end()
print(f'찾았습니다. 시작 인덱스:{start}, 끝 이후 인덱스:{end}')
print('찾은 값:', text[start:end])
else:
print('찾을 수 없습니다.')
print('-'*40)
# 전화번호 확인 및 그룹 처리하기
m = re.search(r'(010|016)-([0-9]{4})-([0-9]{4})', '전화: 010-1234-5678')
if m != None:
print('찾는 값:', m.group()) # 찾는 값: 010-1234-5678
print(m.group(0)) # 010-1234-5678
print(m.group(1)) # 010
print(m.group(2)) # 1234
print(m.group(3)) # 5678
print(f'찾았습니다. 시작 인덱스:{start}, 끝 이후 인덱스:{end}')
else:
print('찾을 수 없습니다.')
print('-'*40)
'Python 기초' 카테고리의 다른 글
파이썬, Base64 인코딩 디코딩 (0) | 2022.10.05 |
---|---|
VSCode와 Anaconda 가상 환경 연결하기 (1) | 2022.09.30 |
python MySQL (MySQLdb) 멀티 쿼리 실행 예제 (0) | 2022.09.20 |
파이썬, 비율이나 퍼센트 구하는 사용자 함수 예제 (0) | 2022.09.17 |
파이썬, 임시 디렉터리 생성, 삭제 예제 (0) | 2022.08.22 |