gpt4 book ai didi

JavaScript 使用正则表达式进行拆分,返回空数组。手动删除还是正则表达式删除?

转载 作者:行者123 更新时间:2023-11-28 12:16:40 24 4
gpt4 key购买 nike

我已经使用 .split() 数十次将字符串转换为数组。这是我第一次收到意想不到的结果。在这里, split 返回一个包含空字符串的数组。这很奇怪,因为被分割的字符串中没有空格。

是否有正则表达式方法可以避免这种新的意外结果,或者我只需用新的代码行删除它们?

let infix = "(A+B)*C";

let infixArr = infix.split(/(\W)/g);
console.log(infixArr);

Yields -- > [ '', '(', 'A', '+', 'B', ')', '', '*', 'C' ]
Expected --> [ '(', 'A', '+', 'B', ')', '*', 'C' ]

最佳答案

问题是有多个分隔符彼此相邻,因此它们之间的字符串为空。您可以使用 filter 过滤空字符串:

"(A+B)*C".split(/(\W)/g).filter(c => c !== ''); 
//=> ["(", "A", "+", "B", ")", "*", "C"]

关于JavaScript 使用正则表达式进行拆分,返回空数组。手动删除还是正则表达式删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48054388/

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