gpt4 book ai didi

javascript - 使用 JS split 函数的 RegEx 的不同结果 - 结果中的空字符串

转载 作者:行者123 更新时间:2023-12-03 12:43:06 26 4
gpt4 key购买 nike

我正在尝试使用 JavaScript 中的正则表达式和拆分函数来拆分字符串。例如,我有一个字符串:olej sojowy、山梨糖醇、czerwień koszenilową我的正则表达式是:

/, (?!(któ))/g

当我在这里测试时: http://regexr.com/38ps8正如预期的那样,我得到了 2 个匹配项,因此结果我应该在分割后得到 3 个元素。

但是当我尝试在 split 函数中使用这个表达式时:

var parts="olej sojowy, sorbitol, czerwień koszenilową".split(/, (?!(któ))/g);
console.log("Num of elements:" + parts.length);
console.log(parts.join("!\n!"));

结果不同,它返回数组中的 5 个元素,以及两个额外的空字符串:

Num of elements:5 
olej sojowy!
!!
!sorbitol!
!!
!czerwień koszenilową

为什么它没有按预期工作?是split功能的问题吗?它使用正则表达式的方式是否与我预期的不同?

编辑:我还注意到,如果我将正则表达式更改为/,/g,那么我就得到了我想要的(结果中的 3 个元素),但是如果后面有 któ,则还有其他字符串我不想拆分昏迷和空间。那么为什么这个运算符要改变 split 的行为呢?

最佳答案

它完全按照它应该的方式工作。您已使用 , 作为分隔符,因此它为您提供了五个元素:

[1] olej sojowy
[2]
[3] sorbitol
[4]
[5] czerwień koszenilową

空元素指示分割所在的位置。

关于javascript - 使用 JS split 函数的 RegEx 的不同结果 - 结果中的空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23455224/

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