規則運算式 (Visual Studio)

更新:2010 年 6 月

規則運算式是一種可尋找並取代文字模式之明確而有彈性的標記法。 當您執行 [快速尋找]、[檔案中尋找]、[快速取代] 或 [檔案中取代] 作業時,可以在尋找和取代視窗的 [尋找目標] 和 [取代成] 欄位中使用特定的一組規則運算式。

若要啟用規則運算式,請在 [尋找和取代] 視窗中展開 [尋找選項],然後選取 [使用],再選取 [規則運算式]。 [尋找目標] 和 [取代成] 欄位旁的 [運算式產生器] 三角形按鈕會變成可用狀態。 請按一下按鈕,以顯示常用的規則運算式清單。 當您按一下清單中的規則運算式時,它會插入到 [尋找目標] 或 [取代成] 欄位中的游標位置。 當您按一下 [運算式產生器] 最下方的 [完整字元清單] 時,會出現說明主題。 本主題中的所有規則運算式,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 會在第一行將 "End" 一字取代成 "Begin"、插入分行符號,然後再將 "Begin" 一字取代成 "End"。

集合中的任何單一字元

[]

比對任何一個在 [] 中的字元。 如果需要指定字元的範圍,請以破折號 (-) 分隔列出字元的起點和終點,如 [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"。

逸出字元

\

比對反斜線 (\) 之後的常值 (Literal) 字元。 這可讓您尋找規則運算式標記法中所使用的字元,如 { 和 ^。

\^ 會搜尋 ^ 字元。

標記的運算式 (或反向參考)

{}

使用大括號內的文字來識別要取代文字的位置。

{does}n't i可識別 \1 not 取代字串中取代文字之前的文字,以將所有出現的 doesn't 變更為 does not。

C/C++ 識別項

:i

運算式 ([a-zA-Z_$][a-zA-Z0-9_$]*) 的簡寫。

比對任何可能的 C/C++ 識別項。

引號字串

:q

運算式 (("[^"]*")|('[^']*')) 的簡寫,會比對雙引號或單引號括住的所有字元,包括引號本身在內。

:q 會比對 "test quote" 和 'test quote',但不會比對 can't 的 't。

空格或定位鍵

:b

比對空格字元或定位字元。

Public:bInterface 會比對文字中的 "Public Interface" 這個片語。

Integer

:z

運算式 ([0-9]+) 的簡寫,會比對任何數字字元的組合。

比對任何整數,例如 "1"、"234"、"56" 等。

尋找和取代作業中所有有效規則運算式的清單比 [運算式產生器] 中所顯示的清單還要更長。雖然下列規則運算式未出現在 [運算式產生器] 中,您還是可以在 [尋找目標] 或 [取代成] 欄位中使用它們。

運算式

語法

描述

範例

最小,零或更多

@

比對先前運算式中零或多個項目,比對的字元越少越好。

e.@ 會比對符合 "enterprise" 中的 "ente" 和 "erprise",但是不符合完整單字 "enterprise"。

最小,1 或更多

#

比對先前運算式中一個或多個項目,比對的字元越少越好。

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。

比對「逸出」控制字元。

鈴聲

\g

Unicode U+0007。

比對「鈴聲」控制字元。

退格鍵

\h

Unicode U+0008。

比對「退格鍵」控制字元。

索引標籤

\t

Unicode U+0009。

比對定位鍵字元。

Unicode 字元

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

比對 Unicode 值所給定的字元,#### 是十六進位數字。 您可以指定在基本多語系面 (也就是 Surrogate) 外的字元與 ISO 10646 字碼指標或給定 Surrogate 字組值的兩個 Unicode 字碼指標。

\u0065 會比對字元 "e"。

下表列出用來指定 Unicode 字元屬性資料庫中所列一般分類的兩個字母縮寫。 您可以在規則運算式字元集使用這些縮寫。 例如,運算式 [:Nd:Nl:No] 符合任何一種數字。

如需 Unicode 字元屬性資料庫的詳細資訊,請參閱 Unicode 標準 5.0 字元屬性 (英文)。

運算式

語法

描述

大寫字母

:Lu

比對任何一個大寫字母。

例如:

:Luhe 會比對 "The" 而不會比對 "the"。

小寫字母

:Ll

比對任何一個小寫字母。

例如:

:Llhe 會比對 "the" 而不會比對 "The"。

標題大寫字母

:Lt

比對混合大小寫字母的字元,例如 Nj 和 Dz。

修飾字母

:Lm

比對用來表示對前置字母修飾的字母或標點符號,如逗號、十字符號和秒號。

其他字母

:Lo

比對其他字母,如哥德語字母 ahsa。

十進位數字

:Nd

比對十進位數字,如 0-9 和它們相同的全形。

字母數字

:Nl

比對字母數字,如羅馬數字和表意的數字零。

其他數字

:No

比對其他數字,如舊式的斜體數字一。

開啟標點符號

:Ps

比對開啟標點符號,如括號和大括號。

關閉標點符號

:Pe

比對關閉標點符號,如關閉的括號和大括號。

起始引號標點符號

:Pi

比對起始雙引號。

最後引號標點符號

:Pf

比對單引號和結束雙引號。

破折號標點符號

:Pd

比對破折號。

連接標點符號

:Pc

比對底線。

其他標點符號

:Po

比對 ,、?、"、!、@、#、%、&、*、\、:、;、' 和 /。

空白分隔符號

:Zs

比對空白。

行分隔符號

:Zl

比對 Unicode 字元 U+2028。

段落分隔符號

:Zp

比對 Unicode 字元 U+2029。

無間距記號

:Mn

比對無間距記號。

合併記號

:Mc

比對合併記號。

封閉式記號

:Me

比對封閉式記號。

比對符號

:Sm

比對 +、=、~、|、< 和 >。

貨幣符號

:Sc

比對 $ 和其他的貨幣符號。

修飾符號

:Sk

比對修飾符號,例如音調符號、低音符號和長音符號。

其他符號

:So

比對其他符號,例如著作權符號、pilcrow 符號和溫度符號。

其他控制項

:Cc

比對 Unicode 控制字元,例如 TAB 和 NEWLINE。

其他格式

:Cf

格式控制字元,如雙向控制字元。

Surrogate

:Cs

比對 Surrogate 字組的一半。

其他私用

:Co

比對任何來自私用區域的字元。

其他未指派

:Cn

比對未對應至 Unicode 字元的字元。

除了標準 Unicode 字元屬性外,下列屬性也可指定為字元集的一部分。

運算式

語法

描述

Alpha

:Al

比對任何一個字元。

例如,:Alhe 會比對 "The"、"then" 和 "reached" 等字。

數值

:Nu

比對任何一個號碼或數字。

標點符號

:Pu

比對任何一個標點符號,例如 ?、@、' 等。

空白字元

:Wh

比對所有空白區類型,例如發行和表意字元空白。

Bidi

:Bi

比對由右至左的指令碼字元,如阿拉伯文和希伯來文。

韓文

:Ha

比對韓語 (Hangul) 和合併 Jamos。

平假名

:Hi

比對平假名字元。

片假名

:Ka

比對片假名字元。

表意字元/Han/Kanji

:Id

比對表意字元,如漢字。

請參閱

參考

萬用字元 (Visual Studio)

尋找和取代視窗、快速尋找

尋找和取代視窗、快速取代

尋找和取代視窗、檔案中尋找

尋找和取代視窗、檔案中取代

具有引數的 Visual Studio 命令

其他資源

尋找和取代

變更記錄

日期

記錄

原因

2010 年 6 月

修正群組中的不正確的運算式。

客戶回函。