visual Studio 中使用正則表達式來進行查找替換


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">([\s\r\n]+)<Item( [^>]*)>([^<]*)</Item>([\s\r\n]+)</Item>
捕獲組 含義
( [^>]* )
這是第一個捕獲組,目的是捕獲 Item之后 ,Name 之前的內容,因為這段內容是變化的,在不同的地方會不一樣 
([\s\r\n]+)
這個第二個捕獲組,是為了匹配換行,新行前有不可見字符。
     
( [^>]*)
這是第三個捕獲組,為了捕獲子節點中的變化字符。
    
 ([^<]*)
這是第四個不過組,為了捕獲子節點的內容
([\s\r\n]+)
這是第五個捕獲組,是為了匹配換行,新行前有不可見字符。

    

       通過上面的查找正則表達式,我們就可以找到指定范圍內符合上面模式的字符串。下面我們看一下替換正則表達式。

        

<Item$1Name="Click">$2<Item$3>Button:$4</Item>$5</Item>

      在替換正則表達式中,我們將查找正則表達式中捕獲組對應的位置使用 $1,$2,.... 來替換,這樣就保證了查找字符串中對應內容的不變。

      而對應我們要修改的第四個捕獲組,我們使用 Button:$4  來替換,達到我們修改的目的。

      例2:將項目中的一部分內容去除掉

        替換前內容:

       

<Item Description="" Name="SmiplePreviewFun">
        <Item Description="" Name="">ページ設定</Item>
        <Item Description="" Name="">印刷プレビュー</Item>
        <Item Description="" Name="">2000</Item>
</Item>

   替換后內容:

<Item Description="" Name="SmiplePreviewFun">
       <Item Description="" Name="">2000</Item>
</Item>

我們希望將中間兩個節點去掉:

查找的正則表達式

<Item ([^>]*) Name="SmiplePreviewFun"([^>]*)>([\s\r\n]+<Item [^<]*</Item>[\s\r\n]+<Item [^<]*</Item>)([\s\r\n]+<Item [^<]*</Item>[\s\r\n]+)</Item>

設置4個捕獲組,前兩個捕獲組是為了應對可能的變換,第三個捕獲組是我們要移除的內容,第四個捕獲組是要保留的內容

替換的正則如下:

<Item $1 Name="SmiplePreviewFun"$2>$4</Item>

 

對於包含四個節點的查找正則

節點格式

<Item Description="設置值" Name="SetItemValue">
        <Item Description="" Name="">MotoFilter</Item>
        <Item Description="" Name="">btnKanjoPattern</Item>
        <Item Description="" Name="">args:39</Item>
        <Item Description="" Name="">1</Item>
      </Item>

正則格式

<Item ([^>]*) Name="SetItemValue"([^>]*)>([\s\r\n]+<Item [^<]*</Item>[\s\r\n]+<Item [^<]*</Item>[\s\r\n]+<Item [^<]*</Item>)([\s\r\n]+<Item [^>]*>1</Item>[\s\r\n]+)</Item>

 

      掌握 在Visual Studio 查找替換時使用正則表達式的技能,如果日常工作中碰到在大量文件中替換固定模式的字符串,就會得心應手了。

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM