正規表現によるテキストの検索
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
SQL Server Management Studio の [検索と置換] ダイアログ ボックスの [検索する文字列] フィールドでは、文字や数字の代わりに以下の正規表現を使用できます。
前提条件
正規表現を有効化する方法
検索で正規表現を有効化する手順を次に示します。
- [編集]>[検索と置換]>[クイック検索] の順に選択します。
- 検索バーの横にある 下矢印>[ファイル内で検索] の順に選択します。
- [検索と置換] ウィンドウで [検索オプション] を展開し、[正規表現を使用する] を選択します。
[検索する文字列] フィールドの横にある [式ビルダー] ボタンが使用できるようになります。 このボタンを選ぶと、使用できる正規表現の一覧が表示されます。 正規表現ビルダーから何らかの項目を選択すると、その項目が[検索する文字列] のフィールドに挿入されます。
次の表は、[正規表現ビルダー] で使用できる正規表現の説明です。
Expression | 説明 |
---|---|
. |
(改行を除く) 任意の 1 文字に一致します。 |
.* |
任意の文字と 0 回以上一致します |
.+ |
任意の文字と 1 回以上一致します |
[abc] |
セット abc に含まれる任意の文字と一致します |
[^abc] |
セット abc に含まれない任意の文字と一致します |
\d |
任意の数字 1 文字に一致します。 |
(?([^\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 の正規表現に関するページを参照してください。