程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何检测具有重复字符的子字符串?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何检测具有重复字符的子字符串??

开发过程中遇到如何检测具有重复字符的子字符串?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何检测具有重复字符的子字符串?的解决方法建议,希望对你解决如何检测具有重复字符的子字符串?有所启发或帮助;

我有一个关于 JavaScript 中的正则表达式的问题。

我想检测一个字符串是否有一个包含重复字符或单词的子字符串。

例如,字符串 "aaaaabcd" 有一个重复的 a 或 aa 子串

但是字符串“abcdefghij”没有任何重复的子字符串。

我在 JavaScript 中创建了一个 RegExp 来检测它。

const written_contents = "aaaaaabcd"
const re = new RegExp("(\w+)\1{3,}","g")
if (re.test(written_contents) ) {
    return "repetition detected."
}

我的意图是检测 3 个以上相同的单词或字符被重复。

让我解释一下达到正则表达式的逻辑

如果字符串是“aaaaaabc”,
\w+ 将捕获由 1+ 个字符组成的任何子集,例如 a、aa、aaa、b、c、aaab、aabc、aaabc。

(\w+)\1 \1 指向第一个括号。这是 (\w)

{3,} 表示 \1 重复了 3 次以上。

我给了“g”选项来搜索整个字符串。

现在我希望捕获“aaaaa”,因为第一个 a 是 \w,第二个 a 是 \1,第三个 a 到第五个 a 是 {3,} 因此“aaaaa”匹配。

但是代码不起作用。

怎么了?

解决方法

发现了问题所在,但我仍然不知道为什么我以前的代码在 javascript 语法方面是错误的。

const re = /(.+)\1{1,}/

if (re.test(written_contents) ) {
    return "repetition detected"
}

以上代码有效。

奇怪的是,

re = new RegExp('(.+)\1{1,}')  

没有用。

大佬总结

以上是大佬教程为你收集整理的如何检测具有重复字符的子字符串?全部内容,希望文章能够帮你解决如何检测具有重复字符的子字符串?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: