본문 바로가기
언어/파이썬

파이썬 정규표현식 : 이론

by tovantablack 2020. 12. 17.
728x90
728x90

 

문자클래스 [ ] : [ ] 사이의 문자들과 매치
[avb]->a,v,b
중 한 개의 문자와 매치

[A-C] :From A To C = [ABC] 숫자도 동일. [0-5]=[012345]  [a-zA-Z] : 알파벳 모두

밑에 애들은 소문자면 해당 내용과 매치, 대문자면 해당 내용이 아닌 것과 매치

\d : 숫자와 매치 = [0-9]

\D : 숫자가 아닌 것과 매치 = [^0-9]

\s = [ \t\n\t\f\v] 맨 앞의 빈 칸은 공백문자

\S = [^ \t\n\t\f\v]

\w = 문자+숫자와 매치 = [a-zA-Z0-9_] _도 보통 허용하기 때문에 뒤에_가 붙은 거

\W = 문자+숫자가 아닌 문자와 매치 = [^a-zA-Z0-9_]

a.b a+모든문자+b 여기서 .은 줄바꿈 문자인 \n을 제외한 모든 문자와 매치됨을 의미. ab사이에 숫자든 문자든 뭐라도 하나 있어야 매치!

re.DOTALL 옵션 주면 \n문자와도 매치됨 p = re.compile('a.b', re.DOTALL)

주의) a[.]ba+.+b이라서 a.b랑은 매치되고, a0b랑은 매치되지 않는다. [ ]안에 있으면 그 문자 그대로를 의미하니, 혼동하지 말 것!

**바로 앞에 있는 문자가 0~2(무한대) 번 반복 가능하다는 것이고, + 1번이상 반복
ca*t =>a
0~무한대번 반복 가능. ca+t=>a1번 이상 반복(0번은 매치 안됨)

 

{숫자n}=반드시 n번 반복 ca{2}t => a2번 반복일 때만 매치

{m,n}=m~n번 반복 ca{2,5}t => a2~5번 반복일 때만 매치(n을 생략함으로서 m번 이상 반복의 의미를 표현할 수도 있다. EX) {1,} = +   {0,} = *   )

 

? = {0,1}  ab?c = a c 사이에 b가 없거나 1번 사용될 때 매치

728x90
728x90

댓글