如何使用正則表達式搜尋文字
適用於:SQL Server
Azure SQL Database
Azure SQL 受控實例
Azure Synapse Analytics
Analytics 平台系統 (PDW)
下列正則表示式可以取代 SQL Server Management Studio 尋找和取代 對話框中 "尋找內容" 欄位的字元或數位。
先決條件
如何啟用正則表達式
以下是在搜尋中啟用正則表達式的步驟。
- 移至 [編輯]>[尋找及取代]>[快速尋找]。
- 在搜尋欄位旁選取 向下箭號>在檔案中尋找。
- 在 [尋找和取代] 視窗中展開 [尋找選項],然後選取 [使用正則表達式]。
[在 尋找內容] 字段旁的 [表達式建立工具] 按鈕就會變成可用。 選取此按鈕以顯示可用正規表達式的清單。 當您從 Expression Builder中選擇任何專案時,它會插入至 尋找什麼 字串。
下表描述 Expression Builder中的一些正則表示式。
表達 | 描述 |
---|---|
. |
比對任何單一字符(換行符除外) |
.* |
比對任何字元零或多次 |
.+ |
比對一個或多個字元 |
[abc] |
匹配集合中的任何字元 abc |
[^abc] |
匹配不在集合中的任何字元 abc |
\d |
比對任何數字字元 |
(?([^\r\n])\s) |
匹配任何空白字元 |
\b |
比對字的開頭或結尾 |
^ |
在行開頭比對 |
.$ |
比對任何換行符 |
\w\r?\n |
比對行尾的文字字元 |
(dog | cat) |
擷取並隱含編號表達式 dog | cat |
(?<pet>dog | cat) |
擷取子表達式 dog | cat ,並將其命名為 pet |
例子
使用正則表達式的一些範例。
範例 1:尋找所有 Select 語句
您想要在 SQL 文稿中尋找所有 SELECT 語句。
SELECT\s+.*\s+FROM
範例 1 的說明
- SELECT\s+:比對 “SELECT” 一字後面接著一或多個空格符。
- .*:比對任何字元(行終止符除外)零次或多次。
- \s+FROM:匹配一個或多個空白字符,後面接著 "FROM" 一詞。
範例 2:尋找具有特定命名模式的程式
您想要在 SQL 文稿中尋找開頭為 「usp_」 的所有預存程式。
CREATE\s+PROCEDURE\s+usp_[A-Za-z0-9_]+
範例 2 的說明
- CREATE\s+PROCEDURE\s+:比對 “CREATE PROCEDURE” 字組後面接著一或多個空格符。
- usp_:匹配字面字串「usp_」。
- [A-Za-z0-9_]+: 比對一個或多個字母或數字或底線。
範例 3:在 SQL 腳本中尋找批注
您想要在 SQL 文稿中識別所有單行批註(從 --開始)。
--.*
範例 3 的說明
- --:符合字面上的字串 “--”。
- .*:比對任何字元(行終止符除外)零次或多次。
範例 4:尋找所有更新語句
您要尋找 SQL 文稿中的所有 UPDATE 語句。
UPDATE\s+.*\s+SET
範例 4 的說明
- UPDATE\s+:比對單詞 "UPDATE" 後面接著一個或多個空白字元。
- .*:比對任何字元(行終止符除外)零次或多次。
- \s+SET:比對一或多個空格符,後面接著 “SET” 一字。
範例 5:在 DDL 語句中尋找數據表名稱
您想要從 SQL 文稿中的 CREATE TABLE 語句擷取資料表名稱。
CREATE\s+TABLE\s+(\w+)
範例 5 的說明
- CREATE\s+TABLE\s+:匹配 “CREATE TABLE” 字組後面接著一或多個空白字符。
- (\w+):匹配一個或多個字元(英數字母和底線),並將其提取用於分析。
如需更多範例,請流覽Visual Studio中的 正則表達式