如何用空格分割字符串,并保持逗号分开?

Ite*_*tor 4 javascript regex split regular-language

我想把一个句子分解成词。如果它只包含空格,则.split(/\s+/)有效。

但是如何也可以用逗号分割,并将逗号保留在结果数组中?

我试过这样的事情,但它不起作用:

.split(/(?=,)|(?!=,)|\s/)
Run Code Online (Sandbox Code Playgroud)

示例输入:

"this,is, a test"
Run Code Online (Sandbox Code Playgroud)

预期输出:

["this", ",", "is", ",", "a", "test"]
Run Code Online (Sandbox Code Playgroud)

我怎么了?甚至可以只使用正则表达式吗?

Wik*_*żew 6

您可以使用

console.log(
  "this,is, a test".match(/[^\s,]+|,/g)
)
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

String#match带有以g修饰符为特色的正则表达式的方法提取所有非重叠出现的

  • [^\s,]+- 除空格 ( \s) 和逗号之外的任何一个或多个字符
  • | - 或者
  • , - 逗号。