正则表达式,用于重复3次或更多次字符串的URL过滤

sun*_*kin 3 regex regular-language

我正在使用正则表达式(\b\w+\b)\W+\1{3,}来过滤重复三次或更多次字符串的网址.我想(\b\w+\b)\W+\1{3,}还是(\b\w+\b)\W{3,}+\1但没有帮助

http://rubular.com/r/6IyCPyBiuW - > (\b\w+\b)\W+\1- >这可以找到重复多次的单词,但我有兴趣找到重复三次以上的单词.

http://rubular.com/r/O9NcobUsTX - > (\b\w+\b)\W+\1{3,}- >这不能找到重复三个或更多的单词

Ani*_*han 5

以下正则表达式有效:

(\w+\W)\1{2,}
Run Code Online (Sandbox Code Playgroud)

上面的内容与非单词字符完全匹配,因此,交替地,你可以使用相当丑陋的外观

(\w+)(?:\W+\1){2,}
Run Code Online (Sandbox Code Playgroud)

细节:

\w    -> single word character
\w+   -> one or more word characters
\W    -> non-word character
\1    -> back-reference to capturing group #1 (in this case, (\w+)
{2,}  -> 2 or more of (?:\W+\1)
(?:)  -> grouping without actually capturing anything
Run Code Online (Sandbox Code Playgroud)

http://rubular.com/r/Trb41xxCAt