정규 표현식 re

Jeonghyun·2022년 10월 13일
0

Python 이론

목록 보기
9/9

정규 표현식 연습장 - https://regexr.com/

import re
pattern = r'정규식'

메타 문자 : 특수한 의미를 가진 문법의 역할을 함

. ^ $ * + ? { } [ ] \ | ( )
해당 문제를 그대로 매칭하고 싶다면 Escape 문자인 \를 붙여 사용

. 기호

아무 문자 하나를 지칭. 공백 포함, 줄 바꿈 문자 제외

[ ] 기호

[ ] 안의 문자 들 중 하나의 문자와 매칭

  • 범위 : A-Z, a-z, 0-9

[^ ] 기호

[^ ] 안의 문자를 제외한 문자들 중 하나의 문자와 매칭

* 기호

바로 앞 문자가 0개 이상일 경우
ex) r'ab*.c' >>> abec, adc

+ 기호

바로 앞 문자가 최소 1개 이상
ex) s로 끝나는 문자 : r'\w+s'

이러한 반복관련 기능들은 가능한 조합 중 가장 긴것을 매칭
반대로 가장 짧을 것을 매칭하려면 반복관련 기호 뒤 ?를 붙이면 됨
r'.+?'

? 기호

바로 앞 문자가 있을 수도 없을 수도 있는 경우

{ } 기호

{숫자} 형태로 사용, 바로 앞 문자가 숫자만큼 반복

^ 기호

글의 시작을 의미

각 줄의 시작을 찾고 싶다면 Multi-line flag 지정
re.split(pattern, text, re.MULTILINE)

$ 기호

글의 끝을 의미

| 기호

or과 같은 기능. 여러 패턴 중 하나랑 매칭

( ) 기호

텍스트 캡쳐. 캡쳐된 텍스트는 캡쳐된 순서대로 \숫자 형태로 불러오는 것이 가능. 괄호이므로 우선 순위가 있다.
캡쳐된 텍스트는 1번부터 사용 가능

1-2-3
1-2-2
3-9-8
3-9-9
pattern = r'\d-(\d)-\1'  # ()안 \d, 숫자와 같은 것을 캡쳐해서 \1로 불러옴.
>>> 
1-2-2
3-9-9

(?: ) 기호

일반 괄호. 캡쳐 x

(?= ) 기호

뒷 패턴을 확인. D(?=R) 형태로 사용
R이 바로 뒤의 D를 매칭하며 R부분은 포함하지 않음

teaching
pattern = r'\w+(?=ing)` # ing가 뒤에 있는 텍스트 매칭
>>>
teach

(?<= ) 기호

앞 패턴을 확인. (?<=R)D 형태
R이 바로 앞에 있는 D를 매칭, R부분은 포함하지 않음




출처 - 부스트캠프 AI Tech 자료

0개의 댓글