Visual studio 使用正則表達查找替換


正則表達式是查找和替換文本模式的一種簡潔而靈活的表示法。 “查找和替換”窗口中執行“快速查找”“在文件中查找”“快速替換”“在文件中替換”操作時,可以在該窗口的“查找內容”“替換為”字段中使用一組專用的正則表達式。

若要啟用正則表達式,請在“查找和替換”窗口中展開“查找選項”,選擇“使用”,然后選擇“正則表達式” “查找內容”“替換為”字段旁的三角形“表達式生成器”按鈕將變為可用。單擊此按鈕可以列表顯示最常用的正則表達式。 當單擊列表上的某個正則表達式時,它將插入“查找內容”“替換為”字段中的光標所在位置。 單擊“表達式生成器”底部的“完整字符列表”時,會顯示幫助主題。 主題內容涵蓋 Visual Studio“查找和替換”功能可以識別的所有正則表達式。 您可以復制主題中的正則表達式,然后將其粘貼到“查找內容”“替換為”字段中。

注意注意

“查找內容”“替換為”中可使用的正則表達式與 .NET Framework 編程中的有效正則表達式有許多語法上的區別。 例如,在 “查找和替換” 窗口中,大括號 {} 用於標記的表達式的替換:將每次出現的 doesn't 改為 does not,你應該使用查找表達式 {does}n't 和替換表達式 \1 not。

“表達式生成器”中經常使用的正則表達式如下所示。

表達式

語法

說明

示例

任一字符

.

匹配除分行符外的任何一個字符。

a.o 匹配“around”中的“aro”和“about”中的“abo”,但不匹配“across”中的“acro”。

零個或多個

*

不匹配上一表達式,或匹配多次,並生成所有可能的匹配。

a*b 匹配“bat”中的“b”和“about”中的“ab”。

e.*e 匹配單詞“enterprise”。

一個或更多個

+

匹配前面表達式的至少一個搜索項。

ac+ 匹配包含字母“a”和至少一個字母“c”的單詞,如“race”和“ace”。

a.+s 匹配單詞“access”。

行首

^

將匹配字符串錨定到行首。

^car 僅當單詞“car”顯示為編輯器行中的第一組字符時匹配該單詞。

行尾

$

將匹配字符串錨定到行尾。

end$ 僅當單詞“end”顯示為可能位於編輯器中行尾的最后一組字符時匹配該單詞。

詞首

<

僅當單詞在文本中以此開頭時才匹配。

<in 匹配以字母組合“in”開頭的單詞,如“inside”和“into”。

詞尾

>

僅當詞在文本中的此位置結束時才匹配。

ss> 匹配以字母組合“ss”結尾的單詞,如“across”和“loss”。

換行符

\n

匹配與操作系統無關的換行符。 在“替換”表達式中,插入換行符。

End\nBegin 僅當“End”是一行中的最后一個字符串和“Begin”是下一行中的第一個字符串時匹配單詞“End”和“Begin”。

在“替換”表達式中,

Begin\nEnd 使用“Begin”替換第一行中的單詞“End”,插入換行符,然后使用單詞“End”替換單詞“Begin”。

集中的任何一個字符

[]

匹配 [] 內的任何一個字符。 若要指定字符的范圍,請列出由短划線 (-) 分隔的起始字符和結束字符,如 [a-z]。

be[n-t] 匹配“between”中的“bet”、“beneath”中的“ben”和“beside”中的“bes”,但不匹配“below”中的“bel”。

集中沒有的任何一個字符

[^...]

匹配未在跟隨 ^ 的字符集中指定的任何字符。

be[^n-t] 匹配“before”中的“bef”、“behind”中的“beh”和“below”中的“bel”,但是不匹配“beneath”中的“ben”。

Or

|

匹配 OR 符號 (|) 之前或之后的表達式。 最常用在分組中。

(sponge|mud) bath 匹配“sponge bath”和“mud bath”。

轉義符

\

按原義匹配反斜杠 (\) 之后的字符。 這使您可以查找正則表達式表示法中使用的字符,如 { 和 ^。

\^ 搜索 ^ 字符。

帶標記的表達式(或反向引用)

{}

使用括號內的文本來標識要替換的文本的位置。

{does}n't 標識在替換字符串中的更換之前的文本,\1 not 更改出現的每個項。

C/C++ 標識符

:i

表達式 ([a-zA-Z_$][a-zA-Z0-9_$]*) 的簡寫形式。

匹配任何可能的 C/C++ 標識符。

帶引號的字符串

:q

表達式 (("[^"]*")|('[^']*')) 的簡寫形式,它匹配用雙引號或單引號括起來的所有字符,還匹配引號本身。

:q 匹配“測試引用”和‘測試引用’,但不匹配“can't”中的“'t”。

空格或制表符

:b

匹配空格或制表符。

Public:bInterface 匹配文本中的短語“Public Interface”。

Integer

:z

表達式 ([0-9]+) 的簡寫形式,它匹配數字字符的任何組合。

匹配任何整數,如“1”、“234”、“56”等等。

“查找”和“替換”操作中所有有效正則表達式的列表,比“表達式生成器”中可顯示的列表長。盡管“表達式生成器”中沒有顯示下面的正則表達式,但您可以在“查找內容”“替換為”字段中使用它們。

表達式

語法

說明

示例

最少、零個或更多個

@

匹配前面表達式的 0 個或更多搜索項,並匹配盡可能少的字符。

e.@ 匹配“enterprise”中的“ente”和“erprise”,但不匹配完整的單詞“enterprise”。

最少、一個或更多個

#

匹配前面表達式的一個或更多搜索項,並匹配盡可能少的字符。

ac# 匹配包含字母“a”和至少一個字母“c”的單詞,如“ace”。

a.#s 匹配單詞“access”中的“acces”。

重復 n 次

n

匹配前面表達式的 n 次出現。

[0-9]^4 匹配任意 4 位數字的序列。

分組

()

允許將一組表達式組合在一起。 如果要在一次操作中搜索兩個不同的表達式,可以使用分組表達式來組合這兩個表達式。

如果要搜索 (- [a-z][1-3] 或 - [0-9][a-z],應按如下方式組合這兩個表達式:([a-z][1-3])|(- [0-9][a-z])

第 n 個帶標記的文本

n

在“查找”或“替換”表達式中,指示第 n 個帶標記的表達式所匹配的文本,其中 n 是從 1 至 9 的數字。

在“替換”表達式中,\0 插入整個匹配的文本。

如果搜索 a{[0-9]},並替換為 \1,則“a”后跟數字的所有搜索項由跟隨的數字替換。 例如,“a1”由“1”替換,類似地,“a2”由“2”替換。

右對齊字段

w,n)

在“替換”表達式中,將字段中第 n 個帶標記的表達式右對齊至少 w 字符寬。

如果搜索 a{[0-9]},並替換為 \(10,1),則“an”的搜索項由整數替換,並通過 10 個空格右對齊。

左對齊字段

w,n)

在“替換”表達式中,將字段中第 n 個帶標記的表達式左對齊至少 w 字符寬。

如果搜索 a{[0-9]},並替換為 \(-10,1),則“an”由整數替換,並通過 10 個空格左對齊。

禁止匹配

~(X)

當 X 出現在表達式中的此位置時禁止匹配。

real~(ity) 匹配“realty”和“really”中的“real”,但不匹配“reality”中的“real”。

字母數字字符

:a

匹配表達式 ([a-zA-Z0-9])。

匹配任何字母數字字符,如“a”、“A”、“w”、“W”、“5”等等。

字母字符

:c

匹配表達式 ([a-zA-Z])。

匹配任何字母字符,如“a”、“A”、“w”、“W”等等。

十進制數字

:d

匹配表達式 ([0-9])。

匹配任何數字,如“4”和“6”。

十六進制數

:h

匹配表達式 ([0-9a-fA-F]+)。

匹配任何十六進制數,如“1A”、“ef”和“007”。

有理數

:n

匹配表達式 (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+))。

匹配任何有理數,如“2007”、“1.0”和“.9”。

字母字符串

:w

匹配表達式 ([a-zA-Z]+)。

匹配任何僅包含字母字符的字符串。

轉義符

\e

Unicode U+001B。

匹配“轉義”控制字符。

Bell

\g

Unicode U+0007。

匹配“Bell”控制字符。

Backspace

\h

Unicode U+0008。

匹配“Backspace”控制字符。

Tab

\t

Unicode U+0009。

制表符匹配。

Unicode 字符

\x#### 或 \u####

匹配 Unicode 值給定的字符,其中 #### 是十六進制數。 可以用 ISO 10646 代碼點或兩個提供代理項對的值的 Unicode 代碼點指定基本多語種平面(即一個代理項)外的字符。

\u0065 匹配字符“e”。


免責聲明!

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



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