共用方式為


如何使用正則表達式搜尋文字

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控實例Azure Synapse AnalyticsAnalytics 平台系統 (PDW)

下列正則表示式可以取代 SQL Server Management Studio 尋找和取代 對話框中 "尋找內容" 欄位的字元或數位。

先決條件

如何啟用正則表達式

以下是在搜尋中啟用正則表達式的步驟。

  1. 移至 [編輯]>[尋找及取代]>[快速尋找]
  2. 在搜尋欄位旁選取 向下箭號>在檔案中尋找
  3. 在 [尋找和取代] 視窗中展開 [尋找選項],然後選取 [使用正則表達式]。

[在 尋找內容] 字段旁的 [表達式建立工具] 按鈕就會變成可用。 選取此按鈕以顯示可用正規表達式的清單。 當您從 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中的 正則表達式