正則表達式是一種簡潔且靈活的表示法,可用來尋找和取代文字模式。 您可以在 [尋找 SQL Server Management Studio 尋找和取代] 對話框的 [尋找內容] 字段中,使用一組特定的正則表達式。
使用正則表達式尋找
若要啟用在 QuickFind、FindinFiles、Quick Replace 或 [檔案中取代] 作業期間,在 [尋找內容] 字段中使用正則表達式,請選取 [尋找選項] 底下的 [使用] 選項,然後選擇 [正則表達式]。
[尋找內容] 欄位旁的三角形 [參考清單] 按鈕隨即可供使用。 按下此按鈕可顯示最常用的正規表示式清單。 當您從 Expression Builder 中選擇任何專案時,它會插入 [尋找哪個 字串]。
備註
正則表達式之間有語法差異,可用於 尋找哪些 字串,以及Microsoft .NET Framework 程序設計中有效的字串。 例如,在 [尋找] 和 [取代] 中,大括弧表示法 {} 會用於標記的表達式。 因此,表示式「zo{1}」會匹配所有出現的「zo{1}」,後面接著標記1,如「Alonzo1」和「Gonzo1」。 但在 .NET Framework 中,表示法 {} 會用於數量值。 因此,字串「zo{1}」會匹配所有出現的「z」,後面緊接著一個「o」,如「zone」而非「zoo」。
下表描述 參考清單中可用的正則表達式。
| 表現 | 語法 | 說明 |
|---|---|---|
| 任何字元 | . | 比對任何不包括換行符的單一字元。 |
| 零個或多個 | * | 符合前面表達式的零次或更多次,使所有可能的匹配項達成。 |
| 一或多個 | + | 比對至少一次上述表達式。 |
| 行的開頭 | ^ | 將比對字串錨定到行的開頭。 |
| 行尾 | $ | 將比對字串錨定到行尾。 |
| 文字開頭 | < | 只有在文字的這個時間點開始時,才會比對。 |
| 字尾 | > | 只有當一個字在此處結束時,才會進行比對。 |
| 換行符 | \n | 符合與平台無關的換行符。 在 Replace 運算式中,插入換行符。 |
| 集合中的任何一個字元 | [] | 比對括號 [] 內的任何一個字符。 若要指定字元範圍,請列出以虛線分隔的開始和結束字元,如 [a-z]。 |
| 任何不在集合中的字元 | [^...] | 比對 ^之後的字元集內沒有的任何字元。 |
| 或 | | | 比對 OR 符號之前或之後的表達式 (|)。 大部分用於群組內。 例如,(海綿|泥)浴符合“海綿浴”和“泥浴”。 |
| 逃脫 | 比對反斜杠 (\) 後面的字元作為字面符號。 這可讓您尋找正則表達式表示法中使用的字元,例如 { 和 ^。 例如,\^ 搜尋 ^ 字元。 | |
| 標記表達式 | {} | 比對以封閉表達式標記的文字。 |
| C/C++ 識別符 | :我 | 符合表達式 ([a-zA-Z_$][a-zA-Z0-9_$]*)。 |
| 被引號包圍的字串 | :q | 符合正規表達式 ("[^"]*")|('[^']*')。 |
| 空格或定位鍵 | :b | 比對空格或製表符。 |
| 整數 | :z | 符合表達式 ([0-9]+)。 |
尋找和取代作業中有效之所有正則表達式的清單比參考清單中顯示的時間還長。 您也可以將下列任一正規表示式插入 Find what 字串:
| 表現 | 語法 | 說明 |
|---|---|---|
| 最小值 - 零或更多 | @ | 匹配前面的表達式零次或更多次,並盡可能匹配最少的字符數。 |
| 最少 - 一或多個 | # | 比對上述表達式的一或多個項目,盡可能比對最少的字元。 |
| 重複 n 次 | ^n | 比對前一個表達式的 n 個出現次數。 例如,[0-9]^4 符合任何四位數序列。 |
| 分組 | () | 將子表達式分組。 |
| 第 n 個被標記的文字 | \n | 在 Find 或 Replace 表達式中,表示第 n 個標記表示式所比對的文字,其中 n 是介於 1 到 9 的數位。 在 Replace 運算式中,\0 會插入整個相符的文字。 |
| 靠右對齊欄位 | \(w,n) | 在 Replace 運算式中,將欄位中的第 n 個標記表示式右對齊,至少要有 w 個字元寬。 |
| 靠左對齊欄位 | \(-w,n) | 在 Replace 運算式中,將第 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。 |
| 鐘 | \g | Unicode U+0007。 |
| 退格鍵 | \h | Unicode U+0008。 |
| Tab鍵 | \t | 匹配製表符 Unicode U+0009。 |
| Unicode 字元 | \x#### 或 \u#### | 比對 Unicode 值所指定的字元,其中 #### 是十六進位數位。 您可以指定基本多語平面之外的字元(也就是代理字符),使用 ISO 10646 字碼點,或指定代理對的兩個 Unicode 字碼點來表示其值。 |
下表列出標準 Unicode 字元屬性比對的語法。 雙字母縮寫與 Unicode 字元屬性資料庫中所列的縮寫相同。 這些可以指定為字元集的一部分。 例如,表達式 [:Nd:Nl:No] 符合任何類型的數位。
| 表現 | 語法 | 說明 |
|---|---|---|
| 大寫字母 | :Lu | 比對任何一個大寫字母。 例如:Luhe 會比對『The』,但不匹配『the』。 |
| 小寫字母 | :Ll | 比對任何一個小寫英文字母。 例如:Llhe 能匹配「the」,但不匹配「The」。 |
| 標題大小寫格式 | :Lt | 比對將大寫字母與小寫字母結合的字元,例如 Nj 和 Dz。 |
| 修飾詞字母 | :Lm | 比對字母或標點符號,例如逗號、交叉重音符和雙導符,用來表示對前一個字母的修改。 |
| 其他信件 | :瞧 | 比對其他字母,例如哥特式字母「ahsa」。 |
| 十進位數 | :Nd | 比對十進位數字,例如0-9及其全形等效字元。 |
| 字母數字 | :Nl | 比對使用字母表示的數字,例如羅馬數字和意義數字零。 |
| 其他數字 | :不 | 比對其他數位,例如舊的斜體數位一。 |
| 開啟標點符號 | :P | 比對開啟標點符號,例如方括號和大括弧。 |
| 關閉標點符號 | :PE | 比對結尾標點符號,例如右括弧和大括弧。 |
| 初始的引號標點符號 | :圓周率 | 比對初始雙引號。 |
| 最終引述標點符號 | :P f | 比對單引號和結束的雙引號。 |
| 虛線標點符號 | :P d | 符合虛線標記。 |
| 連接器標點符號 | :個人電腦 | 匹配底線或下劃線符號。 |
| 其他標點符號 | :Po | 匹配 (,), ?, ", !, @, #, %, &, *, \, (:), (;), ', 和 /. |
| 空格分隔符 | :Zs | 比對空白。 |
| 行分隔符 | :Zl | 符合 Unicode 字元 U+2028。 |
| 段落分隔符 | :Zp | 符合 Unicode 字元 U+2029。 |
| 非間距標記 | :錳 | 比對非間距標記。 |
| 組合標記 | :司儀 | 比對結合標記。 |
| 封入標記 | :我 | 比對括住標記。 |
| 數學符號 | :Sm | 比對 +、=、~、|、 <、 和 >。 |
| 貨幣符號 | :Sc | 比對 $ 和其他貨幣符號。 |
| 修飾詞符號 | :Sk | 比對修飾詞符號,例如圓環反射輔色、嚴重輔色和巨集。 |
| 其他符號 | :所以 | 比對其他符號,例如版權標誌、Pilcrow 符號和學位符號。 |
| 其他控制件 | :Cc | 比對行尾。 |
| 其他格式 | :Cf | 格式化控件字元,例如雙向控制字元。 |
| 代理 | :Cs | 比對代理字組的一半。 |
| 其他私人用途 | :Co | 比對私用區域的任何字元。 |
| 其他未指派 | :Cn | 比對未對應至 Unicode 字元的字元。 |
除了標準 Unicode 字元屬性之外,還可以將下列其他屬性指定為字元集的一部分。
| 表現 | 語法 | 說明 |
|---|---|---|
| 阿爾法 | :鋁 | 比對任何一個字元。 例如:Alhe 會比對 「The」、“then” 和 “reached” 等字組。 |
| 數字型 | :Nu | 符合任何一個數字或數字。 |
| 標點 | :濮 | 比對任何一個標點符號,例如 ?、@、' 等等。 |
| 空白字元 | :Wh | 匹配所有類型的空白,包括出版和符號空間。 |
| 拜迪 | :Bi | 比對來自右至左書寫系統的字元,例如阿拉伯文和希伯來文。 |
| 韓文 | 哈哈 | 比對韓國漢古爾和結合賈莫斯。 |
| 平假名 | :你好 | 比對平假名字符。 |
| 片假名 | :卡 | 比對片假名字符。 |
| 表意文字/漢字/日本漢字 | :Id | 比對表意字符,例如漢字和日文漢字。 |