正規表現でテキストを検索する方法
適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
次の正規表現は、SQL Server Management Studio の [Find what] フィールドで、文字または数字を置き換えるために使用できます。SQL Server Management Studio [Find and Replace] ダイアログ ボックスに適用できます。
前提 条件
- SSMS のダウンロード
正規表現を有効にする方法
検索で正規表現を有効にする手順を次に示します。
- 編集に移動して>検索と置換>クイック検索.
- 検索バーの横にある 下向き矢印>[ファイルで検索]を選択します。
- [検索と置換] ウィンドウで、[検索オプション] を展開し、[正規表現を使用] を選択します。
[式ビルダー] ボタン は [検索する内容] フィールドの横にあり、 使用できるようになります。 このボタンを選択すると、使用可能な正規表現の一覧が表示されます。 式ビルダーから項目を選ぶと、それが 検索する文字列に挿入されます。
次の表に、式ビルダーの正規表現の一部を示します。
表現 | 説明 |
---|---|
. |
任意の 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 の 正規表現に関するページを参照してください。