2015-05-03 20 views
1

我使用Visual Studio 2013的特定格式都不表達,我需要搜索所有return表情裏面做遵循這種格式的括號:如何檢索以下

return (SomeObject); 

對於例如,我需要找到語句是這樣的:

return objItem; 

我嘗試以下作爲搜索的表達與實現「使用正則表達式」,但它不容易找到他們:

return (?!() 

有人可以解釋爲什麼這不起作用和/或建議改進/替代我的正則表達式嗎?

+0

「*,但它不工作*」 - 這是什麼正則表達式查找? –

+0

它沒有找到任何東西。 – Maryam

回答

0

我想這是你想要什麼:

return [^(].*; 

這個發現像行:

return something; 
return func(x); 

但不是

return (foo); 

demo

+0

完美!謝謝! :) – Maryam

+0

它也會捕獲'return View(intval);'。不知道這是你想要的。我建議使用check來判斷return是否緊接着括號結構。 –

1

您的正則表達式return (?!()無效,因爲(符號必須在負向後代(?!\()內部轉義。但是,這隻會匹配return

如果需要使用後沒有括號來捕獲所有「返回」 S,你可以使用

\s*return\s+[^()]+; 

或者,您也可以使用負前瞻檢查到有後無xxx (yyy)字符串:

(?!return\s*\([^)]+?\)\s*;)\s*return\s+[^;]+; 

demo

+0

我試過了,但還是沒有找到任何東西!我確實有這樣的事情: return View(); – Maryam

+0

但它發現這個:return View;這對我不起作用,因爲我需要找到括號後面沒有的返回。 – Maryam

+0

謝謝stribizhev!這也適用!但是,它會在每次搜索中找到三次與表達式匹配的表達式空間。 – Maryam