티스토리 뷰

발생일: 2016.04.14

키워드: 정규식, regular expression, regexp, re, re.escape, r literal string, raw string notation, r 표기법

문제:
정규식 구문에 변수에 할당한 값을 포함해 매칭하려고 한다.


해결책:
기본 문자열을 처리하듯이 구문 문자열에 변수를 더해 처리하면 된다.

text = 'bar'
re.match(r'foo' + text + r'bar', target)


논의:

파이썬의 정규식 구문은 주로 r'' 형태의 raw string notation 을 사용한다.
r'' 표기법을 사용하면, 백슬래시를 일반 문자열처럼 처리할 수 있어 편리하다.

예를 들어, 

>>> r'\t'
'\\t'
>>> r'foo\nbar'
'foo\\nbar'
>>> r'foo.bar'
'foo.bar'
>>> r'foo\.bar'
'foo\\.bar'
>>> r'foo\\bar'
'foo\\\\bar'



>>> re.escape('foo')
'foo'
>>> re.escape('f\too')
'f\\\too'
>>> re.escape(u'파이썬')
u'\\\ud30c\\\uc774\\\uc36c'


참고:




반응형
댓글
공지사항