在Python中使用正则表达式删除重复的单词

时间:2011-03-22 08:50:10

标签: python regex

我需要删除字符串中的重复字词,以便'the (the)'成为'the'。为什么我不能这样做?

re.sub('(.+) \(\1\)', '\1', 'the (the)')

感谢。

2 个答案:

答案 0 :(得分:6)

你需要双倍地逃避反向引用:

re.sub('(.+) \(\\1\)', '\\1', 'the (the)')
--> the

或使用r prefix

  

当存在“r”或“R”前缀时,字符串中包含反斜杠后面的字符不做更改,并且所有反斜杠都保留在字符串中。

re.sub(r'(.+) \(\1\)', r'\1', 'the (the)')
--> the

答案 1 :(得分:2)

根据documentation:'原始字符串表示法(r“text”)使正则表达式保持清醒。'