我尝试创建一个REGEX,它会在一行中找到一个可以出现3次的单词。 例如我有"我的猫在这里,第二只猫和第三只猫在那里。"
所以我创建了这个正则表达式:
^(\b\w{3,}\b).*\1
它出现了2次。但是如果想要添加这个超过3次:
^(\b\w{3,}\b).*\1{3,}
它不起作用。 所以我试着找到任何至少3个字母长的单词,并且在同一行上至少可以出现3次。
有人有想法吗?
感谢
答案 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)
两次或更多次。