2013-06-21 34 views
4

我是一個非常新的Pythonpython正則表達式刪除重複詞

我想改變句子,如果有重複的單詞。

正確

  • 例。 「這真是太好了」 - >「這真是太好了」
  • Ex。 「這只是就是」 - >「這僅僅是」

現在我正在使用這個章節。但它在信件上都做了改變。例如, 「我的朋友和我是幸福的」 - >「我的朋友,是快樂」(它去掉「i」和空格)ERROR

text = re.sub(r'(\w+)\1', r'\1', text) #remove duplicated words in row 

我如何可以做同樣的變化,但不是信其有檢查單詞?使用itertools.groupby

回答

4
text = re.sub(r'\b(\w+)(\1\b)+', r'\1', text) #remove duplicated words in row 

\b空字符串相匹配,但只在一個單詞的開頭或結尾。

7

非正則表達式的解決方案:

>>> strs = "this is just is is" 
>>> from itertools import groupby 
>>> " ".join([k for k,v in groupby(strs.split())]) 
'this is just is' 
>>> strs = "this just so so so nice" 
>>> " ".join([k for k,v in groupby(strs.split())]) 
'this just so nice' 
+0

+1,我個人更喜歡不使用正則表達式,但OP詢問了正則表達式。 – Elazar