2013-10-08 54 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'...] 

所以有可能是全名,其次是一些數單名。還要注意每個列表後面項目的前綴間距。我只想提取單個名稱,而不管這樣的間距。

我想確定某種形式的後向斷言是否是正確的方式來做到這一點。我很難找到看起來可能適用的Python示例。間距是通過正則表達式,這可能不是最佳的早期實體提取的神器,但這是另一個問題...

我不是在尋找代碼的幫助,因爲我知道我不是那麼遠一起;指導將是真棒,但!向後看我在找什麼?

+0

你可以po你到目前爲止試過的東西?也許在嘗試匹配之前修剪? – Jerry

+1

你想要提取什麼(即什麼是「單個名稱」)? –

+0

@TimPietzcker我相信這是每一個字,並在所提供的例子意味着'U「First''或'U」 Last''或'u'First''是他所追求的,但不是'u'First Last''或'u'First M. Last''。 – Jerry

回答

0

這可能是你所需要的,請務必使用UNICODE標誌,因爲你使用的是Unicode字符串u''

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

我用這個表達式採取單個詞:

^ *(\S+) *$ 

,但你有興趣的可以只找字母:

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