次の方法で共有


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

適用対象: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] ダイアログ ボックスに適用できます。

前提 条件

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

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

  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 ステートメントを検索する

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

SELECT\s+.*\s+FROM

例 1 の説明

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

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

T-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: T-SQL スクリプトでコメントを検索する

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

--.*

例 3 の説明

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

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

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

UPDATE\s+.*\s+SET

例 4 の説明

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

例 5: DDL ステートメントでテーブル名を検索する

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

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

例 5 の説明

  • CREATE\s+TABLE\s+: CREATE TABLE 単語の後に 1 つ以上の空白文字が続く単語と一致します。
  • (\w+): 1 つ以上の単語文字 (英数字とアンダースコア) に一致し、抽出のためにそれらをキャプチャします。

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