2012-08-29 3 views
1

대괄호 안에있는 문자열과 일치 시키려합니다. 내 문자열에 아포스트로피가있을 수 있습니다. 일치하는 다음 패턴을 사용하고 있지만이 문자열을 데리러 않는 및 정말 볼 이유가 - 어떤 아이디어?아포스트로피가 포함 된 문자열과 일치하는 문제

pattern = re.compile('<([\w\s\']+)>', re.IGNORECASE) 

예를 들어, <Let's rock!>Let's rock!

답변

5

아포스트로피 문제가 없으므로 느낌표에 문제가 있습니다. 느낌표는 단어 (\w)도 공백 (\s)도 아포스트로피도 아닙니다. 따라서 허용하려는 경우 문자 클래스에 !을 추가해야합니다.

+0

ok 나는 \ w가 일치 할 것이라고 생각했다. - 감사! – tiguero

+0

'\ w'는 문자, 숫자 및 밑줄 만 사용할 수 있습니다 (언어 및 버전에 따라 "문자"및 "숫자"는 해당 단어의 ASCII 해석 또는 유니 코드 해석을 의미 할 수 있음) – hobbs

2

당신이 멀리 간단한 ., 예를 들어, '<(.+)>'로 가져올 수 없습니다 얻을 것인가?

작은 따옴표를 내부에 포함해야하는 경우 문자열에 작은 따옴표를 사용하지 않는 것이 일반적입니다 (예 : "<([\w\s']+)>").

관련 문제