Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式:匹配不在引号内的所有空格_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式:匹配不在引号内的所有空格

Javascript 正则表达式:匹配不在引号内的所有空格,javascript,regex,Javascript,Regex,我需要一个正则表达式,它匹配不在双引号内的所有空格字符。我正在处理这样的字符串: 苹果橙“g r a p e”梨“蓝莓”菠萝 我需要将此字符串拆分为由空格字符分隔的单个项目,但仅限于未包含在双引号中的空格字符(正确匹配的星号): apple*橙色*“g r a p e”*梨*“蓝莓”*菠萝 我如何使用正则表达式来实现这一点?从我所做的一点挖掘来看,像这样的操作似乎不是regex的强项,所以以其他方式拆分字符串会更好吗?我正在使用JavaScript。(?:“[^”]+”|[^”]+)(\s*)

我需要一个正则表达式,它匹配不在双引号内的所有空格字符。我正在处理这样的字符串:

苹果橙“g r a p e”梨“蓝莓”菠萝

我需要将此字符串拆分为由空格字符分隔的单个项目,但仅限于未包含在双引号中的空格字符(正确匹配的星号):

apple*橙色*“g r a p e”*梨*“蓝莓”*菠萝

我如何使用正则表达式来实现这一点?从我所做的一点挖掘来看,像这样的操作似乎不是regex的强项,所以以其他方式拆分字符串会更好吗?我正在使用JavaScript。

(?:“[^”]+”|[^”]+)(\s*)

你可以在这里看到它的作用:

要添加到Blindy的答案中,如果你想使用正则表达式,我建议查看此网站答案:

有效地,一旦您使用正则表达式创建匹配,它将创建两个匹配的组,您可以像这样逐个点击每个组:

let str = 'apple orange "g r a p e" pear "blue berry" pineapple';

let tag = str.match(/(?:"[^"]+"|[^" ]+)?(\s+)/);

alert( tag[0] ); // apple, orange, "g r a p e", pear, "blue berry", pineapple 
alert( tag[1] ); // "  ", " ", " ", " ", " ", " ", " "

您可以将一个正则表达式作为分隔符@PatrickParker传递到split函数中,一个空格被捕获为普通空格。那么嵌套的转义引号呢?如果可以嵌套引号,那么转义符号是什么?请分享你尝试过的代码。看看这个问题,想象它说的是“空格”而不是“逗号”:尝试匹配你想要保留的内容,而不是分割字符串的空格。