2010-01-24 65 views
39

我想更換一些賦值語句,如:Visual Studio的查找和替換正則表達式幫助

int someNum = txtSomeNum.Text; 
int anotherNum = txtAnotherNum.Text; 

int someNum = Int32.Parse(txtSomeNum.Text); 
int anotherNum = Int32.Parse(txtAnotherNum.Text); 

是否有與Visual Studio的查找做到這一點的好辦法和用正則表達式替換?我不確定正則表達式會是什麼。

回答

59

我想在Visual Studio中,你可以用大括號{txtSomeNum.Text}來標記表達式。然後在替換中,您可以使用\1來引用它。所以替換線就像Int32.Parse(\1)


更新:通過@ Timothy003

VS 11與{} \ 1語法和用途()$ 1

+26

我知道這已經很老了...但是爲什麼微軟必須在他們自己的事情上做所有事情。我曾經使用過的其他任何IDE和軟件都使用()來標記表達式和$ 1來引用它們。微軟應該調用這些不規則表達式 – MikeMurko 2011-10-06 18:47:33

+25

@MikeMurko VS 11廢除了{} \ 1語法並使用()$ 1。好極了! – Timothy003 2012-05-08 11:56:59

+0

比從不遲到; – 2013-06-01 03:42:12

6

這就是我一直在尋找摒棄:

查找:= {。* \。Text}

替換爲:= Int32.Parse(\ 1)

+0

你應該逃避正則表達式的第二階段。 – 2010-01-24 02:26:30

+0

好的。我實際上需要逃避\角色才能表現出來。 – 2010-01-24 02:48:23

2

了原問題更好的正則表達式將是

發現EXPR:{:I \。文本}

替換EXPR:Int32.Parse( \ 1)

退房: http://msdn.microsoft.com/en-us/library/2k3te2cs%28v=vs.100%29.aspx

爲VS中的正則表達式的權威性指南。

我最近完成了從地獄重新格式化另一個程序員的C++項目。他完全隨意地輸入或任意排除了空格和製表符,縮進(或非縮進)和括號嵌套水平,以至於我們中沒有人習慣於編碼任何類型的標準甚至可以開始閱讀我開始之前的代碼。廣泛使用正則表達式來查找和糾正異常構造。在幾個小時內,我能夠糾正大約125,000行代碼中的主要問題,而實際上並未查看大部分代碼。在一個特定的單個查找/替換中,我在125個文件中更改了22,000多行代碼,總計時間在10秒以內。在正則表達式

特別有用的構建體:

:B + ==一個或多個空格和/或製表符。

:ⅰ==匹配的C語言風格的變量名稱或關鍵字(即,同時,如果 pick3,bNotImportant)

:WH ==一個空白字符.;不只是空白或標籤

:Sm ==任何算術符號(+, - ,>,=等)

:浦==任何標點符號

\ n ==可換行符(發現他在那裏插8個或10個空行)有用

^==比賽開始線($至匹配結束)

儘管匹配一些其他正則表達式標準(duh),我確實發現了一些MS擴展對於搜索代碼庫非常有用,比如不需要定義'identifier'數百個時間爲「[A-Za-z0-9] +」,而不是僅使用「:i」。

相關問題