2013-10-21 1 views
0

이 포럼의 사람들에게는 약간의 문제 일지 모르지만, 하루 종일 디버깅이 끝났습니다. 파이썬 스크립트가 실행되고 있지만이 문제는 다음과 같습니다.파이썬 re.match()는 문자열의 일부가 일치 할 때 true를 반환합니다.

import re 
spice="IN_N1" 
rtl="IN_N13" 
re.match(spice,rtl) 

일치 개체가 반환됩니다. 파이썬은 두 번째 문자열에서 IN_N1이라는 문자열과 일치하는 것으로 보이며 일치하는 문자열을 반환합니다. 전체 문자열을 비교하고이 경우 일치하지 않음을 반환합니다. 즉 위의 내용은 spice = "IN_N13"인 경우에만 일치해야합니다. 누군가가 해결책을 제안 할 수 있다면 좋을 것입니다. 감사합니다.

+5

'양념을 언급 고정 정규 표현식 고려 :

// 편집)

그러나 Aleksanders의 의견을 고려? 이를 위해 정규식을 사용할 필요가 없습니다. –

답변

2

파이썬 정규 표현식 IN_N1$에 패턴을 변경

IN_N1.*

로 해석하고 그것을 작동합니다. rtl` ==

+2

그들은 match가 아니라 search를 사용하고 있기 때문에'^'이 함축되어 있습니다. – georg

+0

나는 향신료 = '^ IN_N1 $'과 rtl = '^ IN_N1 $'로 만들었습니다. 이 경우 일치하지 않는다고 표시됩니다. 그러나 ^가 암시된다고 가정하고, 향신료 = "IN_N1 $"및 rtl = "IN_N1"을 수정했습니다. 이것은 작동하고 일치를 반환합니다. rtl = "IN_N13"으로하면 일치하는 내용이 없습니다. 따라서 결국 $를 추가하면됩니다. 물론 평등 연산자도 작동합니다. 감사! – Nanditha

+0

물론 첫 번째가 작동하지 않습니다;)^regexp는 줄 시작을 나타내고 $는 줄 끝을 의미합니다. 검색중인 문자열에이 문자를 넣으면 해당 문자가 일반 문자 (정규 표현식이 아닌)이므로 정규 표현식이 일치하지 않습니다. – gentoomaniac

관련 문제