2014-10-29 57 views
0

有了這個example,我想只匹配運營商在類似C代碼,以便其前後匹配運營商只能用正則表達式

例如a+b應該成爲a + ba + b不應該加一個空格成爲a + b。另一個棘手的問題是我不應該在-2等負數的情況下增加一個空格。當然,我需要了解所有例外情況,例如// work-around等評論中的文字。

下面是我工作的正則表達式:

(?!= |=|&|\||%)(\+|-)(?! |=|\1) 

不幸的是預期負環視不起作用。我該如何解決它?

+0

可以有很多邊緣情況下,像'一/ = 5'或一個''++等。我認爲你需要澄清問題的所有這些情況。 – anubhava 2014-10-29 17:07:35

+0

一旦你做了替換,你可以做一個差異,並通過改變,試圖捕捉你錯過的任何例外。 – chilemagic 2014-10-29 17:14:32

回答

0

這只是爲了幫助你的正則表達式。
第一個(負向)向前看,應該是(負向)向後看。

我不認爲這會幫助解析數學符號。

http://regex101.com/r/lX3aF6/1

# (?<!=[ ])(?<![=&|%])(\+|-)(?!\1|[ =]) 

(?<! = [ ]) 
(?<! [=&|%]) 
(\+ | -) 
(?! \1 | [ =])