gpt4 book ai didi

javascript - 如何在 Node.js 中通过正则表达式从原始字符串中获取指定长度的连续相同字符?

转载 作者:搜寻专家 更新时间:2023-11-01 00:29:07 25 4
gpt4 key购买 nike

来源:'aaabbbccddddhhhhlll'

我想得到 'aaa' , 'bbb''lll'通过正则表达式。

我试过了 /([a-z])\1{2}(?!\1)/g , 我得到了 'ddd''hhh'也是,我不想要。

正则表达式应该怎么写?

注意:我不能写'(?<!exp)''(?<name>exp)'在 Node.js 中使用 RegExp 是这样的:

var search_exp = new RegExp('([a-z])(?<!\\1)', 'g');

var search_exp1 = new RegExp('(?<myname>[a-z])\\k<myname>{2}', 'g');

我得到了 'Invalid group'这些错误。

是我写错了,还是Javascript/Node.js有什么特殊之处?

最佳答案

Javascript RegExps 没有回顾 (?<...)这就是它抛出错误的原因,因为唯一可以跟在 (? 之后的字符是:

  • : : 对于非捕获组
  • = : 积极前瞻
  • ! : 负前瞻

混合解决方案:

可以得到所有连续子串的结果,然后像这样过滤结果:

let str = "aaabbbccddddhhhhlll";

let result = str.match(/([a-z])\1+/g) // match all consecutive characters (at least 2 characters long (you can make at least 3 if you want))
.filter(s => s.length === 3); // filter only those of length === 3

console.log(result);

关于javascript - 如何在 Node.js 中通过正则表达式从原始字符串中获取指定长度的连续相同字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44791820/

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