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函数中,一个空格被捕获为普通空格。那么嵌套的转义引号呢?如果可以嵌套引号,那么转义符号是什么?请分享你尝试过的代码。看看这个问题,想象它说的是“空格”而不是“逗号”:尝试匹配你想要保留的内容,而不是分割字符串的空格。