gpt4 book ai didi

javascript - 拆分数组正则表达式(a 但不是 ab,在 a 之后不丢失字符)

转载 作者:行者123 更新时间:2023-11-29 19:09:23 25 4
gpt4 key购买 nike

我有以下内容

var example = "caty not caby";
example.split(/a[^b]/);

返回

[ "c", "y not caby" ] 

但我正在尝试获取

["c","ty not caby"]

如何在不丢失“a”(在上面的示例中为“t”)之后的字符的情况下,在每个“a”而不是每个“ab”处拆分字符串?

最佳答案

其他答案提到了负面前瞻,但我会尝试解释为什么您需要使用它。

你的正则表达式 a[^b] 匹配 a 下一个字符,只要它不是 b,所以它总是两个。在您的示例字符串中,这是 "caty not caby"因为 at 匹配这两个。

前瞻模式被称为零宽度,因为它们进行检查但不被视为匹配的一部分,因此 a(?!b) 将完全匹配一个字符,即使模式同时使用了 ab

caty not caby
^^ ^
|| checked and rejected
||
|checked but not considered part of the match
character matched because the lookahead test passed

所以,这就是它起作用的原因。

var example = "caty not caby";
var split = example.split(/a(?!b)/)
console.log(split);

关于javascript - 拆分数组正则表达式(a 但不是 ab,在 a 之后不丢失字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40301876/

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