2013-10-11 4 views
0

"[stuff]"와 일치하는 정규 표현식을 얻으려고합니다. 이스케이프 문자가있을 수 있지만 짝수 인 경우 아무 것도하지 않습니다. 내 정규식은 다음과 같습니다정규 표현식이 작동하지 않습니다. Python

(?<!\\\\)(\\\\\\\\)*\".*?(?<!\\\\)(\\\\\\\\)*\" 

두 번째 견적 \의 짝수, 즉이있을 때 그것을 일치 ("a daf asd \\")

하지만 첫 번째 인용하지 않습니다 (즉, \\" adf ")

누구나 왜 이것이 효과가 없는지에 대한 아이디어가 있습니까?

+3

를 참조하십시오. –

답변

0

내가하려는 일에 분명하다면 다음을 사용해보십시오.

(?<!\\)(?:\\\\)*".*?(?<!\\)(?:\\\\)*" 

정규 표현식 설명 :

(?<!\\) Matches if the preceding char is not a backslash 
(?:\\\\)* Matches 0 or more occurrences of two backslashes 
"   Matches a double quote 
.*?  Matches any character except \n (0 or more times) 

Repeat lines 1-3 

나는 당신이 당신의 정규 표현식을 정의하는 원시 문자열 리터럴을 사용하고 희망 live demo

관련 문제