VS2012 正則表達式 動態插入 動態替換 (查找和替換工具)

在用VS做編碼開發時,我們常會用到其自帶的"查找和替換"這個工具。

關於用正則替換,有一些容易被遺忘的非常有用的功能。比如,正則動態插入並替換。

通常,如果我們要查找源文件中的固定字符“A”,並替換成固定字符“B”,那麼簡單,只需分別在查找框輸入“A”和替換框輸入“B”,然後點查找、替換按鈕就可以了,這個大家都用熟了。

考慮一下複雜點的,麻煩點的情況:

如果我們要將 “//這是A” 、//這是B”、//各種字符”,替換成如下:

/// <summary>
///這是A
/// </summary>

/// <summary>
///這是B
/// </summary>

/// <summary>
///各種字符
/// </summary>

那麼就要使用正則來查找,並且,也用正則來替換。

查找“//xxx”的正則表達式,可以這麼寫://(.{1,})  大家也可以寫成其他樣子的,自由發揮,只要能正確匹配查找就可以了。

替換的表達式,先分析一下替換的字符,如下:

/// <summary>  這行是固定字符
/// XXX              這行///後面的XXX是動態的,XXX是從被替換的字符中查找匹配得來,再插入這裏的。
/// </summary> 這行是固定字符

由於替換的字符中,有些是動態查找出來,再原樣插入並替換回去的,這就需要動態插入的支持。

變態的是,強大得近乎變態的微軟製造出的強大而變態的VS自帶的“查找和替換”工具,支持正則動態插入!

其表達式如下:

/// <summary>\n/// $1 /// </summary>\n

細心的你,一定一眼就發現了“$1” 這個奇怪的寫法,你可能已經猜出它的作用了,沒錯!它就是//(.{1,})表達式的第1個匹配項,$2是第2個匹配項,$3是第3個匹配項……以此類推。 擴展思考一:那第0個匹配項呢? 擴展思考二:爲什麼$1後面沒有\n ?

因此:

//(.{1,}) 填入查找框中。

/// <summary>\n/// $1 /// </summary>\n  填入替換框中。

點擊查找並替換按鈕,就會將源文件中的 //xxx 替換成

/// <summary>
/// xxx
/// </summary>

寫到這,大家都已經知道是什麼回事,並也知道什麼用了。

如果大家還不懂,那就是我寫得不夠好,還請見諒。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章