我只想用後綴來分割字符串分割。例如,我希望能夠將dord word
分割爲[dor,wor]
。通過後綴與Python正則表達式
我儘管這\wd
將搜索與d
結尾的單詞。但是,這並不會產生預期的結果
import re
re.split(r'\wd',"dord word")
['do', ' wo', '']
如何分割後綴?
我只想用後綴來分割字符串分割。例如,我希望能夠將dord word
分割爲[dor,wor]
。通過後綴與Python正則表達式
我儘管這\wd
將搜索與d
結尾的單詞。但是,這並不會產生預期的結果
import re
re.split(r'\wd',"dord word")
['do', ' wo', '']
如何分割後綴?
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.
試試這個。
您也可以使用re.findall
並使用r'\b(\w+)d\b'
如您正則表達式d
之前找到字的其餘部分有更好的方式:
>>> re.findall(r'\b(\w+)d\b',s)
['dor', 'wor']
由於\w
還捕獲數字和下劃線,我會定義一個單詞只由字母與[a-zA-Z]
字符類:
print [x.group(1) for x in re.finditer(r"\b([a-zA-Z]+)d\b","dord word")]
見demo
如果你想知道爲什麼你原來沒辦法't work,
re.split(r'\wd',"dord word")
它發現一個字母/數字/下劃線之前的一個「 d「並根據它發現的東西而分裂。因此,它這樣做:
辦[RD] WO [RD]
和分裂的字符串括號,刪除它們。
另外請注意,這可能在單詞中間裂開,所以:
re.split(r'\wd', "said tendentious")
將一分爲二的第二個字。