2013-01-17 22 views
0

我想爲Visual Studio搜索做一個正則表達式,發現我所有對不使用回調的某些類的方法的調用(該類是一個代理,而我想要找到同步呼叫)。Visual Studio的正則表達式與否定不工作

我想找到這樣的電話:

jc.GetStuff (data1, data2, data3); 

但不是這樣的:

jc.GetStuff (data1, data2, data3, GetStuffCallback); 

所以我這個嘗試:

~(<jc>..*<(>.*<Callback>.*<)>)<jc>..*<(>.*<)> 

和,不知道如果我應該逃避那些括號:

~(<jc>..*<\(>.*<Callback>.*<\)>)<jc>..*<\(>.*<\)> 

我不明白爲什麼這不起作用......我錯過了什麼?謝謝!

回答

1

我不確定在表達式中所有的尖括號是什麼,但是這樣的事情呢?

jc\..+\((?!.*Callback.*).*\); 

 

jc     literal string jc 
\.     full stop (escaped) 
.*     any character 1 or more times 
\(     opening bracket (escaped) 
(?!.*Callback.*)  negative lookahead for callback 
.*     any character 0 or more times 
\(     closing bracket (escaped) 
;     literal string ;