gpt4 book ai didi

javascript - 正则表达式仅在出现 4 次时查找字符

转载 作者:行者123 更新时间:2023-12-03 23:44:04 24 4
gpt4 key购买 nike

我坚持制作这个正则表达式。我尝试同时使用前瞻和后视,但无法在后视中使用捕获组。仅当出现 4 次时,我才需要从字符串中提取字符。

如果我有这些字符串

  • 3346AAAA44
  • 3973BBBBBB44
  • 9755BBBBBBAAAA44

第一个会匹配,因为它连续有 4 个 A。第二个将不匹配,因为它连续有 6 个 B。第三个将匹配,因为它仍然有 4 个 A。更令人沮丧的是,它可以是从 A 到 Z 的任何字符,出现 4 次。

定位无关紧要。

编辑:我对正则表达式的尝试不起作用。

(([A-Z])\2\2\2)(?<!\2*)(?!\2*)

最佳答案

如果允许lookbehind,捕获字符后,否定lookbehind for \1. (因为如果匹配,则匹配的开头前面是与捕获的第一个字符相同的字符)。然后向后引用该组 3 次,并对 \1 进行否定前瞻。 :

`3346AAAA44
3973BBBBBB44
9755BBBBBBAAAA44`
.split('\n')
.forEach((str) => {
console.log(str.match(/([a-z])(?<!\1.)\1{3}(?!\1)/i));
});

  • ([a-z]) - 捕捉 Angular 色
  • (?<!\1.)负向后看:检查捕获组的第一个索引处的位置前面是否有 2 个相同的字符
  • \1{3} - 匹配被捕获 3 次以上的相同 Angular 色
  • (?!\1) - 第 4 次匹配后,确保后面没有跟同一个字符

关于javascript - 正则表达式仅在出现 4 次时查找字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59174394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com