2013-04-24 101 views
1

我想正則表達式獲得每行1個「單詞」,而不是1「otherExpression」。正則表達式反斜槓和雙引號與例外

樣品: 獲得與表達每一行 '\「'(一次或多次),而不是表達式 'otherExpression'

otherExpression1 \" 
otherExpression 2 \" 
\" 
word \" 
word 
anything \"word\" here 
before \"word  
something 

結果

\" 
word \" 
anything \"word\" here 
before \"word 

樣品2

與goodExpression and not badExpression

badExpression goodExpression 
goodExpression 
this is goodExpression 
this is badExpression 
goodExpression2 
badExpression1 

結果

goodExpression 
this is goodExpression 
goodExpression2 
+0

我不明白。 – 2013-04-24 20:40:06

+0

你在用什麼語言? – Bohemian 2013-04-24 21:06:03

+0

其正則表達式,你可以在http://www.rubular.com/r/ycXD9zcRxJ上測試 – forX 2013-04-24 21:08:47

回答

0

你需要一個負前瞻:

^(?!.*otherExpression).*(\\\") 

1組貴匹配\"

你還沒說你所使用的語言,但我假設的逃逸雙引號是必需的。

+0

需要改變爲^(!!。* otherExpression)。*(\\\「) – forX 2013-04-24 21:26:34

+0

@forX你確定只需要匹配literal:'\「',正則表達式:'\\」'只會匹配literal:'\「',因爲第三個反斜槓會被忽略 – Aprillion 2013-04-24 22:49:42

+0

@deathApril它取決於正在使用什麼語言(未由OP指定)。例如,Java在字符串文字中需要5個反斜槓。 – Bohemian 2013-04-24 23:56:00

0

不是100%確定你想要什麼。嘗試這個;

/^[^(?:otherExpression)].*$/gm 

比賽;

\" 
word \" 
word 
anything \"word\" here 
before \"word  

或這個;

/^[^(?:otherExpression)].*\"$/gm 

比賽;

\" 
word \" 

或這個;

/^[^(?:otherExpression)].*\\"$/gm 

比賽;

word \" 

最後要真正匹配一個單詞,試試這個;

^[^(?:otherExpression)]\w+\s+\\"$ 

比賽;

word \" 
相關問題