javascript正则表达式匹配
我需要根据空格作为分隔符拆分一个字符串,如下所示。但报价中的任何空格都应该保留。有两种情况需要解决 案例1 到 案例2 到 我正试图用Javascript和正则表达式来实现这一点javascript正则表达式匹配,javascript,regex,match,Javascript,Regex,Match,我需要根据空格作为分隔符拆分一个字符串,如下所示。但报价中的任何空格都应该保留。有两种情况需要解决 案例1 到 案例2 到 我正试图用Javascript和正则表达式来实现这一点 var splitArray = query_string.match(/([^\s]*\"[^\"]+\")|\w+/g); 案例1按要求工作,但案例2产生的结果如下 research library "not available" author Bernard 我需要两个案例来处理一个正则表达式。任何想
var splitArray = query_string.match(/([^\s]*\"[^\"]+\")|\w+/g);
案例1按要求工作,但案例2产生的结果如下
research
library
"not available"
author
Bernard
我需要两个案例来处理一个正则表达式。任何想法都值得赞赏
([^\s]*\"[^\"]+\")|\w+:?
我在这里测试了这个正则表达式:
更新:
您可能希望包含更多标点符号,如代码>,
?
代码>
e、 研究图书馆!“不可用”作者:“萧伯纳”测试1,测试2;测试2
说明:
[^"\s]+ # One or more non-space/non-quote characters
(?:"[^"]+")? # optionally followed by a quoted string
| # or
"[^"]+" # just a quoted string.
假设带引号的字符串中没有转义引号。这至少适用于两种情况:
((?:[^\s]*\"[^\"]+\")|[\w:]+)
谢谢你,蒂姆。它工作得很好。在我看来,这是所有答案中最全面的。谢谢。当我尝试使用它时,它分别给出了“author:”和“Bernard”。不过,在Rubular中,它似乎工作得很好。
research
library
"not available"
author
Bernard
([^\s]*\"[^\"]+\")|\w+:?
([^\s]*\"[^\"]+\")|\w+[:;\.,\?!]?
[^"\s]+(?:"[^"]+")?|"[^"]+"
[^"\s]+ # One or more non-space/non-quote characters
(?:"[^"]+")? # optionally followed by a quoted string
| # or
"[^"]+" # just a quoted string.
((?:[^\s]*\"[^\"]+\")|[\w:]+)