如何:使用規則運算式進行搜尋
規則運算式是在尋找及取代文字模式時所使用,為既簡明、又有彈性的標記法。特定的規則運算式集可用在 SQL Server Management Studio [尋找和取代] 對話方塊的 [尋找目標] 欄位。
若要使用規則運算式來尋找
若要啟用於 [快速尋找]、[檔案中尋找]、[快速取代] 或 [檔案中取代] 等作業期間,在 [尋找目標] 欄位使用規則運算式,請選取 [尋找選項] 之下的 [使用] 選項,再選擇 [規則運算式]。
之後,就可以使用 [尋找目標] 欄位旁三角形的 [參考清單] 按鈕。請按一下這個按鈕來顯示最常用的規則運算式清單。當您從「運算式產生器」中選擇任何項目時,項目會插入 [尋找目標] 字串中。
附註: |
---|
[尋找目標] 字串所能使用的規則運算式與 Microsoft.NET Framework 程式設計中的有效規則運算式,兩者語法不同。例如,在 [尋找和取代] 中,標記運算式會使用括號標記法 {}。因此運算式 "zo{1}" 符合 "zo" 後面接著標記 1 的所有出現項目,如 "Alonzo1" 及 "Gonzo1"。但在 .NET Framework 中,限定詞會使用標記法 {}。因此運算式 "zo{1}" 符合 "z" 後面接著正好一個 "o" 的所有出現項目,如 "zone",而 "zoo" 就不符合。 |
下表說明 [參考清單] 中可用的規則運算式。
運算式 | 語法 | 描述 |
---|---|---|
任何字元 |
. |
符合任何單一字元,分行符號除外。 |
零或多個 |
* |
符合零或多個前導運算式出現項目,會產生所有可能的相符項目。 |
一或多個 |
+ |
符合至少一個前導運算式出現項目。 |
行首 |
^ |
將相符字串固定在行首。 |
行尾 |
$ |
將相符字串固定在行尾。 |
字首 |
< |
單字必須開始於文字中的這一點才相符。 |
字尾 |
> |
單字必須結束於文字中的這一點才相符。 |
分行符號 |
\n |
符合不限特定平台使用的分行符號。在取代運算式中,會插入分行符號。 |
集合中的任何單一字元 |
[] |
符合 [] 以內的任何一個字元。若要指定字元範圍,請列出開始和結束的字元,並以破折號 (-) 分隔,例如 [a-z]。 |
非集合中的任何單一字元 |
[^...] |
符合接在 ^ 後面之字元集以外的任何字元。 |
或 |
| |
符合 OR 符號 (|) 前後的運算式。大多用於群組內。例如 (海綿 | 泥漿) 浴符合「海綿浴」和「泥漿浴」。 |
逸出 |
\ |
符合在反斜線 (\) 之後作為常值的字元。您可以尋找規則運算式標記法中所使用的字元,例如 { 及 ^。例如,\^ 會搜尋 ^ 字元。 |
標記運算式 |
{} |
符合標示加上引號運算式的文字。 |
C/C++ 識別碼 |
:i |
符合運算式 ([a-zA-Z_$][a-zA-Z0-9_$]*)。 |
加上引號的字串 |
:q |
符合運算式 (("[^"]*")|('[^']*'))。 |
空格或定位點 |
:b |
符合空格或定位字元。 |
整數 |
:z |
符合運算式 ([0-9]+)。 |
[尋找和取代] 作業中有效的所有規則運算式清單很長,無法在 [參考清單] 中顯示出來。您也可以將下列其中任何規則運算式插入 [尋找目標] 字串中:
運算式 | 語法 | 描述 |
---|---|---|
最少 — 零或多個 |
@ |
符合零或多個前導運算式出現項目,相符的字元數儘可能少。 |
最少 — 一或多個 |
# |
符合一或多個前導運算式出現項目,相符的字元數儘可能少。 |
重複 n 次 |
^n |
符合 N 個前導運算式的出現項目。例如 [0-9]^4 符合任何 4 位數序列。 |
分組 |
() |
將子運算式分組。 |
第 n 個標記文字 |
\n |
在尋找或取代運算式中,指出第 n 個標記運算式相符的文字,其中 n 是 1 到 9 的數字。 在取代運算式中,\0 會插入完整的相符文字。 |
欄位靠右對齊 |
\(w,n) |
在取代運算式中,將欄位中的第 n 個標記運算式靠右對齊至少 w 個字元寬。 |
欄位靠左對齊 |
\(-w,n) |
在取代運算式中,將欄位中的第 n 個標記運算式靠左對齊至少 w 個字元寬。 |
預先排除相符 |
~(X) |
排除運算式中與 X 相符的部份。例如,real~(ity) 符合 "realty" 及 "really" 中的 "real",但 "reality" 中的 "real" 則不符合。 |
英數字元 |
:a |
符合運算式 ([a-zA-Z0-9])。 |
字母字元 |
:c |
符合運算式 ([a-zA-Z])。 |
十進位數 |
:d |
符合運算式 ([0-9])。 |
十六進位數 |
:h |
符合運算式 ([0-9a-fA-F]+)。 |
合理數 |
:n |
符合運算式 (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+))。 |
字母字串 |
:w |
符合運算式 ([a-zA-Z]+)。 |
逸出 |
\e |
Unicode U+001B 字元。 |
Bell |
\g |
Unicode U+0007 字元。 |
退格鍵 |
\h |
Unicode U+0008 字元。 |
定位點 |
\t |
符合定位字元 Unicode U+0009。 |
Unicode 字元 |
\x#### 或 \u#### |
符合以 Unicode 值給定的字元,其中 #### 是十六進位數。您可以用 ISO 10646 字碼指標,或用給定 Surrogate 字組值的兩個 Unicode 字碼指標,指定「基本多語文字面 (BMP)」(亦即,Surrogate) 以外的字元。 |
下表列出依照標準 Unicode 字元屬性的比對語法。兩個字母的縮寫與在 Unicode 字元屬性資料庫中所列者相同。可指定為字元集的一部份。例如,運算式 [:Nd:Nl:No] 符合任何種類的數字。
運算式 | 語法 | 描述 |
---|---|---|
大寫字母 |
:Lu |
符合任何一個大寫字母。例如,:Luhe 符合 "The",但不符合 "the"。 |
小寫字母 |
:Ll |
符合任何一個小寫字母。例如,:Llhe 符合 "the",但不符合 "The"。 |
標題大小寫字母 |
:Lt |
符合大小寫字母組合的字元,例如 Nj 及 Dz。 |
修飾字母 |
:Lm |
符合字母或標點,如用來指出對前導字母修飾的逗號、X 型重音符號以及雙撇號。 |
其他字母 |
: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 |
符合其他符號,如版權符號、段落符號 (i) 以及溫度符號。 |
其他控制項 |
:Cc |
符合行尾。 |
其他格式 |
:Cf |
格式化控制字元,如雙向控制字元。 |
代理 |
:Cs |
符合半組 Surrogate 字組。 |
其他私人使用符號 |
:Co |
符合私人造字區中的任何字元。 |
其他未指派的符號 |
:Cn |
符合未對應 Unicode 字元的字元。 |
除了標準的 Unicode 字元屬性以外,另有下列屬性可指定為字元集的一部份。
運算式 | 語法 | 描述 |
---|---|---|
α |
:Al |
符合任何一個字元。例如,:Alhe 符合如 "The"、"then" 及 "reached" 等字。 |
數值 |
:Nu |
符合任何數字。 |
標點符號 |
:Pu |
符合任何一個標點符號,如 ?、@、' 等等。 |
空白 |
:Wh |
符合所有類型的空白,包括發行和表意空格。 |
Bidi |
:Bi |
符合由右至左書寫的字元,如阿拉伯文與希伯來文。 |
韓文 |
:Ha |
符合韓文 (Hangul) 及組合的 Jamo。 |
平假名 |
:Hi |
符合平假名字元。 |
片假名 |
:Ka |
符合片假名字元。 |
表意/漢字 |
:Id |
符合表意字元,如漢字。 |