逻辑搜索字符串的正则表达式

时间:2013-04-08 13:22:05

标签: regex

我想编制一个搜索。主要问题是搜索引用的文本并使用+和减号进行搜索。

我希望有一个正则表达式来搜索例如

var test = '"search test" searchword2 -searchword3';

应该导致

[0] = 'search test';
[1] = 'searchdword2';
[2] = '-searchword3';

谢谢

编辑:

Sry,但我希望第一个结果没有引号。我的错误。

3 个答案:

答案 0 :(得分:1)

似乎你想要在空格上拆分字符串,除非该空格用引号括起来。正确?

在这种情况下(并假设您不必处理引用字符串中的转义引号),请尝试

"[^"]*"|\S+

See it on regex101

如果字符串中可能存在转义引号(\"),请使用

"(?:\\.|[^"])*"|\S+

See it on regex101

答案 1 :(得分:0)

我认为如果你只想要一个将术语分开的正则表达式,你可以使用

("(\w|\s)+")|([-+]?(\w)+)

http://rubular.com/r/aOKs3nF7Fk

虽然你的问题缺乏清晰度

答案 2 :(得分:0)

嗯,你可能想尝试一下:

/"[\w ]+"| (?:-|\+)?\w+ ?/g