正则表达式在一行上找到相同的单词repeatead

时间:2015-06-19 13:24:33

标签: regex repeat word

我尝试创建一个REGEX,它会在一行中找到一个可以出现3次的单词。 例如我有"我的猫在这里,第二只猫和第三只猫在那里。"

所以我创建了这个正则表达式:

^(\b\w{3,}\b).*\1

它出现了2次。但是如果想要添加这个超过3次:

^(\b\w{3,}\b).*\1{3,}

它不起作用。 所以我试着找到任何至少3个字母长的单词,并且在同一行上至少可以出现3次。

有人有想法吗?

感谢

1 个答案:

答案 0 :(得分:0)

你的正则表达式必须是,

(\b\w{3,}\b).*\1.*\1

\1{3,}将搜索3次或更多次捕获的单词

OR

(\b\w{3,}\b)(?:.*\1){2,}

.*匹配任何字符,零次或多次。 \1指的是第一个捕获组内存在的字符。因此(?:.*\1){2,}将搜索捕获的字符串,使其出现两次以上。如果是,那么它将进行匹配。对于3个或更多,只需将重复量词内的数字2更改为3. {2,}重复前一个标记(?:.*\1)两次或更多次。