2013-10-08 2 views
0

그래서 같은 이름의 목록이 있습니다Lookbehind 어설 션이 필요합니까?

[u'First Last', u' First', u' First', u' First'...] 

또는

[u'First M. Last', u' Last, u' Last'...] 

또는

[u'First', u' First', u' First'...] 

그래서 하나의 이름을 몇 수에 따라 전체 이름을있을 수 있습니다 . 각 목록의 후자 항목에 접두사가 붙은 공백에 유의하십시오. 이러한 간격에 관계없이 단일 이름 만 추출하려고합니다.

나는 어떤 종류의 lookbehind 단언이 이것을하는 적당한 방법다는 것을 판명하는 것을 시도하고있다. 내가 적용 할 수있는 것 같은 파이썬 예제를 찾는 데 어려움을 겪고 있습니다. 공백은 정규 표현식을 통한 엔티티 추출의 결과물로, 아마도 최적은 아니지만 다른 질문 일 수 있습니다 ...

나는 그다지 멀지 않다는 것을 알기 때문에 코드 도움말을 찾고 있지 않습니다. 안내는 굉장 할 것이다! 내가 뭘 찾고있어? 이것은 아마 당신이 필요의 UNICODE 플래그를 사용해야합니다

^ *([a-zA-Z]+) *$ 
+0

지금까지 해봤 던 것? 어쩌면 일치하기 전에 손질하는 걸까요? – Jerry

+1

정확히 추출 할 내용 (즉, "단일 이름"은 무엇입니까?)? –

+0

@TimPietzcker 필자는 모든 단어가 하나의 단어라고 믿고 있으며, 제공된 예에서 'u'First '또는'u 'Last'또는 'u'First''는 그가 후일이지만'First First '는 아닙니다. 또는'u'First M. Last''. – Jerry

답변

0

을 :

^ *(\S+) *$ 

하지만 당신은 편지를 찾고에 관심이있을 수 있습니다

0

나는 하나의 단어를 주셔서이 정규식을 사용 , 유니 코드 문자열을 사용하고 있기 때문에 u'' :

import re 
pattern = re.compile(r'^\s*([^\s]+)\s*$', re.UNICODE) 
관련 문제