본문 바로가기
Python

[Python] 파이썬 정규식

by 혀나Lee 2016. 10. 27.

반복 메타 문자

 반복 메타 문자

 의미 

 * 

 0회 이상 반복 

 + 

 1회 이상 반복 

 ? 

 0회 혹은 1회 

 {m} 

 m회 반복 

 {m,n

 m회부터 n회까지 반복 


매칭 메타 문자

메타 문자

의미

.

줄바꿈 문자를 제외한 모든 문자와 매치됨

^

문자열의 시작과 매치됨.

[]메타 기호 안에서는 반대의 문자열을 취함

$

문자열의 마지막과 매치됨

[]

문자 집합 중 한 문자를 의미함

|

또는(or)를 의미함

()

정규식을 그룹으로 묶음


이스케이프 기호

분야

설명

\\

역슬래쉬 문자 자체

\d

모든 숫자와 매치됨 [0-9]

\D

숫자가 아닌 문자와 매치됨[^0-9]

\s

화이트 스페이스 문자와 매치됨[ \t\n\r\f\v]

\S

화이트 스페이스가 아닌 것과 매치됨 [^ \t\n\r\f\v]

\w

숫자 또는 문자와 매치됨[a-zA-Z0-9_]

\W

숫자 또는 문자가 아닌 것과 매치됨[^a-zA-Z0-9_]

\b

단어의 경계를 나타냄. 단어는 영문자 혹은 숫자의 연속 문자열.

\B

단어의 경계가 아님을 나타냄.


최소 매칭을 위한 정규식

기회

의미

*?

*와 같으나 문자열을 취소로 매치함.

+?

+와 같으나 문자열을 취소로 매치함.

??

?와 같으나 문자열을 최소로 매치함.

{m,n}?

{m.n}과 같으나 문자열을 최소로 매치함


re모듈의 주요 메소드

메소드

설명

compile(patten[, flags])

pattern을 컴파일하여 정규식 객체를 리턴한다.

search(pattern, string[,flags])

string을 검사하여 pattern에 맞는 문자열 부분이 있는가를 찾는다.

match(pattern, string[,flags])

string의 시작부터 pattern에 맞는지 검사한다.

split(pattern, string[, maxsplit=0])

string을 pattern을 기준으로 분리한다.

findall(pattern, string)

string에서 pattern을 만족하는 모든 문자열을 추출한다.

sub(pattern, repl, string[, count-0])

string에서 pattern을 repl로 대치한다.

subn(pattern, repl, string[,count=0])

sub와 동일하나 대치 횟수도 함께 전달한다.

escape(string)

영문자 숫자가 아닌 문자들을 백슬래쉬 처리해서 리턴한다. 임의의 문자열을 정규식패턴으로 사용할 경우 유용하다.


정규 표현식에서 사용 가능한 플래그

플래그

내용

I, IGNORECATE

, 소문자를 구별하지 않는다.

L, LOCATE

\w, \W, \b, \B를 현재의 로케일에 영향을 받게한다.

M, MULTILINE

^가 문자열의 맨 처음, 각 라인의 맨 처음과 매치된다.

$는 문자열의 맨 끝, 각 라인의 맨 끝과 매치된다.

S, DOTALL

.을 줄바꾸기 문자도 포함하여 매치하게 한다.

U, UNICODE

\w, \W, \b, \B가 유니코드 문자 특성에 의존하게 한다.

X, VERBOSE

정규식 안의 공백은 무시된다.



                                                                                 -출처 : 열혈강의 Python 20장

댓글