파이썬
정규표현식
#
Find similar titles
- (rev. 4)
- Kyooyeol Lee
Structured data
- Category
- Programming
파이썬 정규표현식 (Regular expression) #
정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어로써 펄, Tcl에서 강력하게 사용할 수 있도록 지원하고 있다. 이는 문자열의 집합, 파싱, 치환, 변경, 삭제 같이 문자열을 처리하는 방법으로, 파이썬 뿐만 아니라 다른언어에서도 사용한다.
정규표현식은 문자열에서 찾고자하는 혹은 바꾸고자하는 특정 문자열의 패턴을 표시하는 형식을 말한다. 파이썬에서 정규표현식은 re
모듈을 이용하여 다음과 같이 사용할 수 있다.
>>>import re
>>>data = "kim 801111-1223456"
>>>pattern = re.compile("(\d{6})[-]\d{7}")
>>>pattern.search(data).span()
(4, 18)
메타문자 #
메타문자는 정규표현식을 표현하기 위한 특별한 의미를 가지는 문자를 말하며 다음과 같다.
메타문자 | 의미 |
---|---|
. | 줄 바꿈을 제외한 모든 문자 (예: a, b) |
^ | 문자열의 시작 (예: ^a) |
$ | 문자열의 끝 (예: d$) |
* | 앞에 있는 문자 0~무한개 반복 (예: ct, cat, caaaat) |
+ | 앞에 있는 문자 최소 1개 이상 반복 |
? | 앞에 있는 문자가 0개 또는 1개 |
{n} | 앞 문자를 n회 반복 |
{n,m} | 앞 문자를 n~m회 반복 |
{n,} | 앞 문자 n회 이상 반복 |
{,m} | 앞 문자 m회 이하 반복 |
[abc] | a,b,c 중 한개의 문자와 일치 |
이스케이프기호 #
기호 | 의미 |
---|---|
\d | 숫자 |
\D | 숫자가 아닌 문자 |
\s | whitespace(탭, 줄바꿈, 공백 등) 문자와 매치 |
\S | whitespace문자가 아닌 것 |
\w | 문자 or 숫자 |
\W | 문자 or 숫자가 아닌 문자 |
정규식 사용하기 #
정규식 컴파일 #
re.compile()
을 이용하여 파이썬에서 사용할 수 있도록 정규식을 컴파일 해준다.
>>>import re
>>>p = re.compile('ab*')
'\ (역슬래쉬)' 가 포함된 문자를 찾고싶다면, 다음과 같이 '\'를 사용해야한다.
>>>import re
>>>p = re.compile(r'\\test')
정규식 검색하기 #
정규식을 검색할 수 있는 방법은 다음 4가지가 있다.
match()
: 문자열의 처음부터 검색search()
: 문자열 전체를 검색findall()
: 매치되는 모든 문자열을 리스트로 리턴finditer()
: 매치되는 모든 물자열을 iterator 객체로 리턴