[英]Find and detect a pattern in a string
我正在寻找一个 function 来检测字符串上的重复模式,例如,如果输入是:
var string = "HelloHelloHelloHelloHelloHello";
var string2 = "Hello this is a repeated pattern Hello this is a repeated pattern Hello this is a repeated pattern Hello this is a repeated pattern";
它应该返回 true 因为有很多次重复“你好”或“你好这是一个重复的模式”
我试过这样的事情:
function detectPattern(string) {
string = string.replace(/\s+/g,"_");
return /(\S)(\1{15,})/g.test(string);
}
但这只会检测文本是否多次包含相同的字符。
有什么想法或建议吗?
一个可行的正则表达式如下:
^(.+?)( ?\1)+$
这将匹配:
^
: 字符串的开头(.+?)
:最少的字符数(至少一个),其次是(?\1)+
:一个可选空格和第一组的相同字符,多次$
: 字符串结尾为了提取您的重复模式,提取第 1 组的内容就足够了。
在此处查看演示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.