Regex 正则表达式在一行中查找相同的单词repeated

Regex 正则表达式在一行中查找相同的单词repeated,regex,repeat,word,Regex,Repeat,Word,我尝试创建正则表达式,找到一个可以在一行中出现3次的单词。 例如,我有“我的猫在这里,第二只猫和第三只猫在那里。” 所以我创建了这个正则表达式: ^(\b\w{3,}\b).*\1 它可以工作2次。但如果加上这个要3次以上: ^(\b\w{3,}\b).*\1{3,} 它不起作用。 所以我试着找到任何一个至少3个字母长的单词,并且可以在同一行中出现至少3次 有人有主意吗 谢谢你的正则表达式必须是 (\b\w{3,}\b).*\1.*\1 \1{3,}将搜索3次或更多次捕获的单词 或 *匹配

我尝试创建正则表达式,找到一个可以在一行中出现3次的单词。 例如,我有“我的猫在这里,第二只猫和第三只猫在那里。”

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

^(\b\w{3,}\b).*\1
它可以工作2次。但如果加上这个要3次以上:

^(\b\w{3,}\b).*\1{3,}
它不起作用。 所以我试着找到任何一个至少3个字母长的单词,并且可以在同一行中出现至少3次

有人有主意吗

谢谢你的正则表达式必须是

(\b\w{3,}\b).*\1.*\1
\1{3,}
将搜索3次或更多次捕获的单词


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

不幸的是,如果我尝试你的答案,我的短语“我的猫在这里,第二只猫和第三只猫在那里。”不会出现在答案中。如果要搜索同一个单词4或5次,则不确定\1是否会重复多次。谢谢你,那是
(\b\w{3,}\b)(?:.*\1){2,}
怎么样
(\b\w{3,}\b)(?:.*\1){2}
。您可以将
{2}
调整为需要匹配的任何事件。没错,多尔格斯雷泽先生。这是我想要的。只是一个问题,你能给我解释一下这一部分吗:(?:.*1)?因为。*表示所有字符,\1表示第一组。但是什么?:你的意思是什么?为什么要放另一个?最后?非常感谢
*?
中的额外
表示不贪婪(或懒惰)。它告诉正则表达式引擎只查找所需的尽可能多的匹配项,因此它只查找字符,直到找到下一个匹配项
\1
。附加的
?:
意味着正则表达式引擎不应该捕获组(因为
*?\1
放在括号中,所以引擎会将其作为一个组进行匹配)。你可以在这里读到
(\b\w{3,}\b)(?:.*\1){2,}