使用正则表达式查找双字

时间:2009-08-11 10:37:25

标签: regex

我想在文本中找到双字词,我使用(\w+) +\1它有效,但是它只在文本中找到“abc abc”。

我也想找到“abc def abc def”

感谢,..

4 个答案:

答案 0 :(得分:4)

以下正则表达式将匹配任何重复的字符序列:

/(.+).*?\1/

如果您只想要重复的序列,但两者之间只有空格,那么请改用:

/(.+)\s+?\1/

如果您只想要以空格分隔的字词,请将(.+)更改为(\w+)

/(\w+)\s+?\1/

如果你想看看忽略标点符号之类的词语,单词边框可能会更有用:

/(\b\w+?\b)\.+?\b\1\b/

答案 1 :(得分:1)

不确定要匹配的内容,但可以像将其更改为:

一样简单

(\w+) +.*\1

.*将匹配可能介于两者之间的任何额外字符。

这将匹配'abc def abc def'的'abc def abc'部分,如果你想匹配它,所有改为:

(\w+) +.*\1.*

答案 2 :(得分:1)

(\w.*) +\1”也许?或者这对你的需求是否过于笼统?

(\w+(?:\s+\w+)*) +\1”也可能有用。

答案 3 :(得分:1)

你正试图delete the duplicates吗?或者您也可以查看answer