2015-07-12 42 views
5

我只想用後綴來分割字符串分割。例如,我希望能夠將dord word分割爲[dor,wor]通過後綴與Python正則表達式

我儘管這\wd將搜索與d結尾的單詞。但是,這並不會產生預期的結果

import re 
re.split(r'\wd',"dord word") 
['do', ' wo', ''] 

如何分割後綴?

回答

4
x='dord word' 
import re 
print re.split(r"d\b",x) 

print [i for i in re.split(r"d\b",x) if i] #if you dont want null strings. 

試試這個。

3

您也可以使用re.findall並使用r'\b(\w+)d\b'如您正則表達式d之前找到字的其餘部分有更好的方式:

>>> re.findall(r'\b(\w+)d\b',s) 
['dor', 'wor'] 
2

由於\w還捕獲數字和下劃線,我會定義一個單詞只由字母與[a-zA-Z]字符類:

print [x.group(1) for x in re.finditer(r"\b([a-zA-Z]+)d\b","dord word")] 

demo

1

如果你想知道爲什麼你原來沒辦法't work,

re.split(r'\wd',"dord word") 

它發現一個字母/數字/下劃線之前的一個「 d「並根據它發現的東西而分裂。因此,它這樣做:

辦[RD] WO [RD]

和分裂的字符串括號,刪除它們。

另外請注意,這可能在單詞中間裂開,所以:

re.split(r'\wd', "said tendentious") 

將一分爲二的第二個字。