2011-03-13 3 views
0
textfields="""Conjugation of suorittaa """ 
stry2= """Conjugation""" 
stryc=re.compile(stry2, re.DOTALL) 
print 'textfields=', textfields, ' stry2=', stry2 
LtryM=re.search(stryc, textfields); print 'LtryM', LtryM 

"" "sugitation"의 "Conjugation of suorittaa" ""에서 "" "Conjugation" ""단어를 찾을 수 없습니다. 나는 끝으로 단어 ans 문자열을 인쇄했다. "" "공역" "대신" ""xxxConjugation "" "xxx가 이상한 문자 인"단어가 인쇄되었습니다.다시 작동하지 않습니다. 이상한 문자

어떻게 해결할 수 있습니까? 나는 또한 양쪽 문자열을 'utf-8'로 인코딩하려고 시도했다. 결과는 동일합니다. 이 이상한 문자는 단어의 앞쪽에만 표시되며, conjug.py에는 표시되지 않습니다.

답변

0

AFAIK, searchmatch은 캡처 그룹이있는 경우 일치 개체를 반환합니다. 기대하는 동작을 얻으려면 findall을 사용하십시오.

In [23]: textfields="""Conjugation of suorittaa """ 

In [24]: stry2= """Conjugation""" 

In [25]: ls = re.findall(stry2 , textfields) 

In [26]: ls 
Out[26]: ['Conjugation'] 

위의 내용이 사용자의 쿼리가 아닌 경우 정확히 무엇을하려고하는지 설명하십시오.

0

게시 된 코드에서 일치하는 항목을 찾아야합니다. re.search가 직접 인쇄해서는 안 MatchObject을 반환 참고 - 대신 일치하는 텍스트를 인쇄 할 수 있습니다

print LtryM.group(0) 

이 '활용'을 인쇄해야합니다.

1

귀하의 문제는 당신이 제공 한 그 정보를 바탕으로, 재현되지 않습니다 :

>>> import re 
>>> textfields="""Conjugation of suorittaa """ 
>>> stry2= """Conjugation""" 
>>> stryc=re.compile(stry2, re.DOTALL) 
>>> print 'textfields=', textfields, ' stry2=', stry2 
textfields= Conjugation of suorittaa stry2= Conjugation 
>>> LtryM=re.search(stryc, textfields); print 'LtryM', LtryM 
LtryM <_sre.SRE_Match object at 0x0195A870> 
>>> LtryM.group(0) 
'Conjugation' 
>>> print repr(textfields) 
'Conjugation of suorittaa ' 
>>> print repr(stry2) 
'Conjugation' 
>>> 

SO에 붙여 넣기/복사 할 수있는 위 같은 방식으로 스스로를 재생하는 시도하고 정확하게 표시 I 그 결과는 무엇인가.

[Python 2.7.1; Windows 7 32-bit]

관련 문제