정규 표현식 연습장 - https://regexr.com/
import re
pattern = r'정규식'
메타 문자 : 특수한 의미를 가진 문법의 역할을 함
. ^ $ * + ? { } [ ] \ | ( )
해당 문제를 그대로 매칭하고 싶다면 Escape 문자인 \를 붙여 사용
.
기호아무 문자 하나를 지칭. 공백 포함, 줄 바꿈 문자 제외
[ ]
기호[ ] 안의 문자 들 중 하나의 문자와 매칭
[^ ]
기호[^ ] 안의 문자를 제외한 문자들 중 하나의 문자와 매칭
*
기호바로 앞 문자가 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 자료