2013-04-08 76 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 
相關問題