确定字符串是否包含重复的单词

时间:2019-08-27 17:32:51

标签: regex

我在文本字段中有以下单词(称为Criticality):

www.abc.com/folder1/index -> www.abc.com/folder1/

我希望能够确定此字段是否包含重复的(或重复出现的单词)

Confidentiality;Confidentiality

我尝试过使用正则表达式匹配并使用以下语法:

if Criticality == Confidentiality;Confidentiality then Yes (meaning it has words re-occurring.

if Criticality == Confidentiality;Availability then No (meaning it does not have any word re-occuring).

但不起作用。不知道是否有人可以引导我。

2 个答案:

答案 0 :(得分:1)

您的单词用;分隔,但是正则表达式要求它们用\s+分隔,即空格。

如果要允许任何非单词字符分隔它们,则可以使用\W+

您还应该在后向引用周围加上\b,这样它只能匹配整个单词。

(\b\w+\b)(\W+\b\1\b)

DEMO

答案 1 :(得分:1)

这是用于确定您的字段是否包含重复单词的正则表达式

(?<![^;])(\w+)(?![^;])[\S\s]*(?<![^;])\1(?![^;])

https://regex101.com/r/iOkI9d/1