Regular Exp在模式中找到重复短语2顺序单词

问题描述 投票:-1回答:2

我想在一个模式中按顺序复制2个单词

我希望能够在这种情况下捕获重复的单词"cancer cervical",因为它们是唯一重复的2个单词。

模式"cancer cervical diane mortality cervical cancer cervical diane sea"

我使用这个正则表达式,但仍然无法捕获2个顺序重复的单词。

/(\W|^)(.+)\s\2/ig
php regex duplicates
2个回答
0
投票

这应该能够做到这一点:/(\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));

0
投票

听起来你只是在寻找/(.+)\s\1/

这将匹配由空格分隔的任何字符。

在你的例子中,它将匹配cercancercervical

var string = "cancer cervical diane mortality cervical cancer cervical diane sea";
var regex = /(.+)\s\1/;
console.log(string.match(regex));

这也可以在Regex101 here上看到。

© www.soinside.com 2019 - 2024. All rights reserved.