次の方法で共有


正規表現でテキストを検索する方法

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

次の正規表現は、SQL Server Management Studio の [Find what] フィールドで、文字または数字を置き換えるために使用できます。SQL Server Management Studio [Find and Replace] ダイアログ ボックスに適用できます。

前提 条件

  • SSMS のダウンロード

正規表現を有効にする方法

検索で正規表現を有効にする手順を次に示します。

  1. 編集に移動して>検索と置換>クイック検索.
  2. 検索バーの横にある 下向き矢印>[ファイルで検索]を選択します。
  3. [検索と置換] ウィンドウで、[検索オプション] を展開し、[正規表現を使用] を選択します。

[式ビルダー] ボタン は [検索する内容] フィールドの横にあり、 使用できるようになります。 このボタンを選択すると、使用可能な正規表現の一覧が表示されます。 式ビルダーから項目を選ぶと、それが 検索する文字列に挿入されます

次の表に、式ビルダーの正規表現の一部を示します。

表現 説明
. 任意の 1 文字に一致する (改行を除く)
.* 任意の文字を 0 回以上一致させる
.+ 任意の文字に 1 回以上一致する
[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" という単語の後に 1 つ以上の空白文字が続きます。
  • .*: 任意の文字(行終端記号を除く)に対して0回以上一致します。
  • \s+FROM: 1 つ以上の空白文字の後に "FROM" という単語が続きます。

例 2: 特定の名前付けパターンを持つプロシージャーの検索

SQL スクリプトで "usp_" で始まるすべてのストアド プロシージャを検索する必要があります。

CREATE\s+PROCEDURE\s+usp_[A-Za-z0-9_]+

例 2 の説明

  • CREATE\s+PROCEDURE\s+: "CREATE PROCEDURE" という単語の後に 1 つ以上の空白文字が続きます。
  • usp_: リテラル文字列 "usp_" と一致します。
  • [A-Za-z0-9_]+: 1 つ以上の英数字またはアンダースコアに一致します。

例 3: SQL スクリプトでのコメントの検索

SQL スクリプト内のすべての単一行コメント (--以降) を識別する必要があります。

--.*

例 3 の説明

  • --: リテラル文字列 "--" と一致します。
  • .*: 任意の文字 (行末記号を除く) に 0 回以上マッチします。

例 4: すべての Update ステートメントを検索する

SQL スクリプト内のすべての UPDATE ステートメントを検索する必要があります。

UPDATE\s+.*\s+SET

例 4 の説明

  • UPDATE\s+: "UPDATE" という単語の後に 1 つ以上の空白文字が続きます。
  • .*: 任意の文字 (行終端記号を除く) に対して 0 回以上一致します。
  • \s+ SET: 1 つ以上の空白文字の後に "SET" という単語が続く文字列と一致します。

例 5: DDL ステートメントでの表名の検索

SQL スクリプトの CREATE TABLE ステートメントからテーブル名を抽出する場合。

CREATE\s+TABLE\s+(\w+)

例 5 の説明

  • CREATE\s+TABLE\s+: "CREATE TABLE" という単語の後に 1 つ以上の空白文字が続きます。
  • (\w+): 1 つ以上の文字 (英数字とアンダースコア) に対応し、抽出用に取り込みます。

その他の例については、Visual Studio 正規表現に関するページを参照してください。