2021-05-12 14:32:11
Visual Studio 中使用正規表示式來進行查詢替換
2020-06-16 16:40:02
1.開啟Visual Studio
2. 通過選單Edit -->Find and Replace -->Replace In File ,或者使用 ctrl + Shift + H 開啟在檔案中查詢對話方塊,如下:
Find What: 填寫查詢語句的地方,可以是入任何查詢關鍵字,也可以是正規表示式。
Replace With: 填寫替換語句的地方。
Look in:查詢位置,可以是當前文件,開啟文件,當前工程,全部工程,指定目錄等等。
3. 假定我們在一個目錄下的多個檔案中存在下面模式的內容
<Item Description=" Today" Name="Click"> <Item Description="" Name="">開始</Item> </Item>
我們需要將上面的程式碼替換為下面的結果,就是在開始前面追加 Button:
<Item Description=" Today" Name="Click"> <Item Description="" Name="">Button:開始</Item> </Item>
上面程式碼的特徵是Item 節點的 Name="Click" ,Item 節點有一個子節點,針對上面的模式我們開始寫查詢正規表示式。
查詢正則:
<Item( [^>]* )Name="Click">([srn]+)<Item( [^>]*)>([^<]*)</Item>([srn]+)</Item>
捕獲組 | 含義 |
( [^>]* ) |
這是第一個捕獲組,目的是捕獲 Item之後 ,Name 之前的內容,因為這段內容是變化的,在不同的地方會不一樣 |
([srn]+) |
這個第二個捕獲組,是為了匹配換行,新行前有不可見字元。 |
( [^>]*) |
這是第三個捕獲組,為了捕獲子節點中的變化字元。 |
([^<]*) |
這是第四個不過組,為了捕獲子節點的內容 |
([srn]+) |
這是第五個捕獲組,是為了匹配換行,新行前有不可見字元。 |
通過上面的查詢正規表示式,我們就可以找到指定範圍內符合上面模式的字串。下面我們看一下替換正規表示式。
<Item$1Name="Click">$2<Item$3>Button:$4</Item>$5</Item>
在替換正規表示式中,我們將查詢正規表示式中捕獲組對應的位置使用 $1,$2,.... 來替換,這樣就保證了查詢字串中對應內容的不變。
而對應我們要修改的第四個捕獲組,我們使用 Button:$4 來替換,達到我們修改的目的。
掌握 在Visual Studio 查詢替換時使用正規表示式的技能,如果日常工作中碰到在大量檔案中替換固定模式的字串,就會得心應手了。
相關文章