如何用空格分割字符串,并保持逗号分开?
我想把一个句子分解成词。如果它只包含空格,则.split(/s+/)有效。
但是如何也可以用逗号分割,并将逗号保留在结果数组中?
我试过这样的事情,但它不起作用:
.split(/(?=,)|(?!=,)|s/)
示例输入:
"this,is, a test"
预期输出:
["this", ",", "is", ",", "a", "test"]
我怎么了?甚至可以只使用正则表达式吗?
回答
您可以使用
console.log(
"this,is, a test".match(/[^s,]+|,/g)
)
请参阅正则表达式演示。
String#match带有以g修饰符为特色的正则表达式的方法提取所有非重叠出现的
[^s,]+- 除空格 (s) 和逗号之外的任何一个或多个字符|- 或者,- 逗号。