2013-04-08 77 views
-1

我想编程搜索。主要问题是搜索带引号的文本,并使用+和减号搜索。逻辑搜索字符串的正则表达式

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

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

应导致

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

谢谢

编辑:

Sry基因,但我希望有不带引号的第一个结果。我的错。

回答

1

看来你想拆分stri除空白符号用引号括起来外,其余部分均为空格。对?

在这种情况下(假设你没有对付引用的字符串内转义引号),尝试

"[^"]*"|\S+ 

See it on regex101

如果有可能逃脱引号(\")在字符串中,使用

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

See it on regex101

+0

你能否给我提供一个没有引号的解决方案? 谢谢 – 2013-04-08 14:11:47

+0

困难 - 你似乎在使用JavaScript,对不对?这个正则表达式并不支持这个工作需要的lookbehind断言。你不能在一个额外的步骤中删除引号吗? – 2013-04-08 20:13:14

0

我认为,如果你只是想一个正则表达式,将分割的条款出来,你可以使用

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

http://rubular.com/r/aOKs3nF7Fk

虽然你的问题不够明确

0

嗯,你可能也想尝试:

/"[\w ]+"| (?:-|\+)?\w+ ?/g 
相关问题