【发布时间】:2020-10-06 04:13:27
【问题描述】:
如何在 JS 中使用正则表达式将字符串拆分为不同的字符
例如,
'aabbcdddaa'
会变成
[aa, bb, c, dd, aa]
感谢任何帮助,谢谢!
【问题讨论】:
标签: javascript regex split
如何在 JS 中使用正则表达式将字符串拆分为不同的字符
例如,
'aabbcdddaa'
会变成
[aa, bb, c, dd, aa]
感谢任何帮助,谢谢!
【问题讨论】:
标签: javascript regex split
捕获一个字符和反向引用。
console.log('aabbcdddaa'.match(/(.)\1*/g));
【讨论】:
如果你坚持使用split,它会有点复杂,并且只适用于较新的 JavaScript 引擎(因为它必须依赖lookbehind):
console.log('aabbcdddaa'.split(/(?<=(.))(?!\1)/g).filter((e, i) => i % 2 == 0));
这会在lookbehind 中捕获一个字符,然后确保lookahead 字符不同,从而识别字符串中两个相邻字符不同的位置。但是,在split 中使用捕获会将捕获插入到结果列表中,因此我们需要通过仅保留偶数结果来过滤掉不需要的“分隔符”。
注意:这从字面上回答了发布的问题;实际上,使用 Snow 发布的全局 match 可读性更高,性能也更高(更不用说它也适用于旧引擎)。
【讨论】: