是否可以使用正则表达式将字符串拆分为空格和引号?出于性能原因,我只能使用.split()
而不是.match()
。
示例:
'This is an "example for" stack overflow.'
输出:
["This", "is", "an", "example for", "stack", "overflow"]
答案 0 :(得分:1)
您问题的简短答案是,可以在String.prototype.split()中使用正则表达式。 这是基于示例的所需代码:
'This is an "example for" stack overflow.'.split(/\"\s|\s\"|\s|\"/g);
答案 1 :(得分:0)
使用该正则表达式,您可以更轻松地用纯记号捕获单词,或者用双引号将包含空格但双引号括起来的单词捕获,而不是拆分字符串。
"([\w ]*?)"|\w+
下面是相同的示例Javascript代码,
var s = 'This is an "example for" stack overflow.';
var re = /"([\w ]*?)"|\w+/g;
var arr = [];
do {
m = re.exec(s);
if (m) {
if (m[1]) {
arr.push(m[1]);
} else if (m[0]) {
arr.push(m[0]);
}
}
} while (m);
console.log(arr);