-1

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

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

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

应该导致

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

谢谢你

编辑:

抱歉,但我希望第一个结果不带引号。我的错。

4

3 回答 3

1

似乎您想在空格上拆分字符串,除非该空格用引号引起来。对?

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

"[^"]*"|\S+

在 regex101 上查看

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

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

在 regex101 上查看

于 2013-04-08T13:31:54.333 回答
0

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

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

http://rubular.com/r/aOKs3nF7Fk

虽然你的问题不够清晰

于 2013-04-08T13:28:04.550 回答
0

嗯,您可能想尝试:

/"[\w ]+"| (?:-|\+)?\w+ ?/g
于 2013-04-08T13:28:30.100 回答