2012-05-31 2 views
1

저는 파이썬으로 코드를 작성 중이며 여러 변수에서 두 개 이상의 단어를 가져 와서 주어진 텍스트에서 일치하는 것을 찾으려고합니다. 예를 들어 다음과 같이 두 문자열 사이에 여러 공백을 동적으로 찾기

, 두 변수가 선언 될 수 있습니다

string1 = 'Polluted' 
string2 = 'air' 

그리고 텍스트에 맞게 수있을 :

'Polluted\t\t\t air ' 또는 'Polluted\tair'.

단어/토큰 사이에 공백이 여러 개있을 수도 있습니다.

나는 유사한 해결책을 찾기 위해 필요 re.search(string1'\t+'string2,var) 당신이 의도 한대로이를 구현하기위한 솔루션을 도와 드릴까요

?

답변

4

[ \t\n\r\f\v]에 해당하는 \s을 사용하고 re.UNICODE을 사용하는 경우 유니 코드 문자 속성 데이터베이스에서 공백으로 분류 된 문자를 사용합니다.

>>> var = 'Polluted\t\t\t air, Polluted\tair' 
>>> re.findall(re.escape(string1) + '\s+' + re.escape(string2), var) 
['Polluted\t\t\t air', 'Polluted\tair'] 

>>> re.search('(\w+)\s+(\w+)', 'Polluted\t\t\t air').groups() 
('Polluted', 'air') 
+1

나는 질문자가 실제로're.search' –

+0

@MarkLongair 감사 (re.escape (문자열 1가)의 \ + '+ re.escape (문자열 1)을 ... +) 싶은 생각! 대답이 업데이트되었습니다. – okm

관련 문제