使用規則運算式搜尋文字
規則運算式是在尋找及取代文字模式時所使用,為既簡明、又有彈性的標記法。 您可以在 [尋找 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 | | | 符合 OR 符號 (|) 前後的運算式。 大多用於群組內。 例如 (海綿 | 泥漿) 浴符合「海綿浴」和「泥漿浴」。 |
逸出 | |比對反斜杠後面的字元, (\) 做為常值。 您可以尋找規則運算式標記法中所使用的字元,例如 { 及 ^。 例如,\^ 會搜尋 ^ 字元。 | |
標記運算式 | {} | 符合標示加上引號運算式的文字。 |
C/C++ 識別碼 | :i | 符合運算式 ([a-zA-Z_$][a-zA-Z0-9_$]*)。 |
加上引號的字串 | :q | 符合運算式 (("[^"]*")|('[^']*'))。 |
空格或定位點 | :b | 符合空格或定位字元。 |
整數 | :z | 符合運算式 ([0-9]+)。 |
[尋找和取代] 作業中有效的所有規則運算式清單很長,無法在 [參考清單] 中顯示出來。 您也可以將下列其中任何規則運算式插入 [尋找目標] 字串中:
運算是 | 語法 | 描述 |
---|---|---|
最少 - 零或多個 | @ | 符合零或多個前導運算式出現項目,相符的字元數盡可能少。 |
最少 - 一或多個 | # | 符合一或多個前導運算式出現項目,相符的字元數儘可能少。 |
重複 n 次 | ^n | 符合 N 個前導運算式的出現項目。 例如,[0-9]^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 字元屬性以外,另有下列屬性可指定為字元集的一部分。
運算是 | 語法 | 描述 |
---|---|---|
Alpha | :Al | 符合任何一個字元。 例如,:Alhe 符合如 "The"、"then" 及 "reached" 等字。 |
數值 | :Nu | 符合任何數字。 |
標點符號 | :Pu | 符合任何一個標點符號,如 ?、@、' 等等。 |
空白字元 | :Wh | 符合所有類型的空白,包括發行和表意空格。 |
Bidi | :Bi | 符合由右至左書寫的字元,如阿拉伯文與希伯來文。 |
韓文 | :Ha | 符合韓文 (Hangul) 及組合的 Jamo。 |
平假名 | :Hi | 符合平假名字元。 |
片假名 | :Ka | 符合片假名字元。 |
表意/漢字 | :Id | 符合表意字元,如漢字。 |