我想在一个模式中按顺序复制2个单词
我希望能够在这种情况下捕获重复的单词"cancer cervical"
,因为它们是唯一重复的2个单词。
模式"cancer cervical diane mortality cervical cancer cervical diane sea"
我使用这个正则表达式,但仍然无法捕获2个顺序重复的单词。
/(\W|^)(.+)\s\2/ig
这应该能够做到这一点:/(\w+\s\w.*)\s.*\1/
,如果你正在处理包括数字在内的单词。
var string = "cancer cervical diane mortality cervical cancer cervical diane sea";
var regex = /(\w+\s\w.*)\s.*\1/;
console.log(string.match(regex));
var string = "cancer cervical diane mortality cervical cancer cervical diane sea";
var string1=" this is a test cancer cervical cancer diane mortality cervical cancer cervical diane sea";
var string2=" test whether it will catch one word cancer mortality cervical cancer cervical diane sea";
var regex = /(\w+\s\w.*)\s.*\1/;
console.log(string.match(regex));
console.log(string1.match(regex));
console.log(string2.match(regex));
听起来你只是在寻找/(.+)\s\1/
。
这将匹配由空格分隔的任何字符。
在你的例子中,它将匹配cer
和cancer
的cervical
:
var string = "cancer cervical diane mortality cervical cancer cervical diane sea";
var regex = /(.+)\s\1/;
console.log(string.match(regex));
这也可以在Regex101 here上看到。