为什么这个regex可以拆分第二个双引号而不是第一个双引号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么这个regex可以拆分第二个双引号而不是第一个双引号?相关的知识,希望对你有一定的参考价值。

["])

let regex = /(?=.|["])/;
test = ""test.test""
test.split(regex)

它的输出是:

[""test", ".test", """]

而我要的是

[""", "test", ".test", """]

我不明白为什么要拆开第二个双引号,而不是第一个双引号?

P.S.:一定要保持".test "这样(而不是".""test")。

答案

这不是纯粹的regex解决方案,但你可以用这个regex与捕获组一起使用,过滤空结果。

const str = '"test.test"';

var arr = str.split(/(")|(?=.)/).filter(Boolean)

console.log(arr)

以上是关于为什么这个regex可以拆分第二个双引号而不是第一个双引号?的主要内容,如果未能解决你的问题,请参考以下文章

JS中的单引号和双引号

JS中的单引号和双引号

REGEX - 在字符串之间查找文本 - 第一个可选,但在第一个匹配之前只有第二个

在REGEX中选择引号但不是撇号

Python中单引号,双引号,3个单引号及3个双引号的区别

js怎么在引号里写函数