Regular Exp найти повторяющиеся фразы 2 последовательно слова в шаблоне - PullRequest
0 голосов
/ 04 мая 2018

Я хотел бы поймать 2 слова, последовательно дублированные в шаблоне

Я хотел бы иметь возможность ловить повторяющиеся слова в этом случае "cancer cervical", потому что они являются единственными дублирующимися 2 словами последовательно.

шаблон "cancer cervical diane mortality cervical cancer cervical diane sea"

Я использую это регулярное выражение, но все еще не могу поймать 2 последовательно дублированных слова.

/(\W|^)(.+)\s\2/ig

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Это должно быть в состоянии выполнить работу: /(\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 голосов
/ 04 мая 2018

Похоже, вы просто ищете /(.+)\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 здесь .

...