我想在文本中找到双字词,我使用(\w+) +\1
它有效,但是它只在文本中找到“abc abc”。
我也想找到“abc def abc def”
感谢,..
答案 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)