適用対象:SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric の Microsoft Fabric と Warehouse の SQL 分析エンドポイント
Microsoft Fabric のSQL データベース
REGEXP_INSTRスカラー正則表現関数は、return_option引数の値に応じてマッチングされた部分文字列の開始位置または終了位置を返します。
REGEXP_INSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , return_option [ , flags [ , group ] ] ] ] ]
)
Arguments
string_expression
文字列の式。
文字列の定数、変数、または列を指定できます。
データ型: char、 nchar、 varchar、または nvarchar。
Note
REGEXP_*関数はstring_expressionパラメータに対して最大2MBまでのLOB型(varchar(max)およびnvarchar(max))をサポートしています。
pattern_expression
照合する正規表現パターン。 通常はテキスト リテラルです。
データ型: char、 nchar、 varchar、または nvarchar。 pattern_expression では、最大文字数 8,000 バイトがサポートされています。
start
検索文字列内の検索の開始位置を指定します。 Optional. 型が int または bigint です。
番号付けは 1 から始まります。つまり、式の最初の文字は 1 され、値は >= 1する必要があります。 開始式が 1未満の場合は、エラーを返します。 開始式が string_expressionの長さを超える場合、関数は 0を返します。 既定値は 1です。
occurrence
検索または置換するソース文字列内のパターン式の出現を指定する式 (正の整数)。 既定値は 1 です。
string_expressionの最初の文字を検索します。 正の整数nの場合は、pattern_expressionの最初の出現に続く最初の文字で始まるnthの出現箇所を検索します。
return_option
一致する部分文字列の開始位置と終了位置のどちらを返すかを指定します。 先頭には 0 を使用し、末尾には 1 を使用します。 既定値は 0 です。 クエリは、その他の値に対してエラーを返します。
flag
一致を検索するために使用する修飾子を指定する 1 つ以上の文字。 型は varchar または char で、最大 30 文字です。
たとえば、ims のようにします。 既定値は cです。 空の文字列 (' ') が指定されている場合は、既定値 ('c')として扱われます。
cまたはその他の文字式を指定します。 フラグに複数の矛盾する文字が含まれている場合、SQL Server は最後の文字を使用します。
たとえば、正規表現 ic 指定すると、大文字と小文字が区別される一致が返されます。
サポートされているフラグ値に記載されている文字以外の文字が 値に含まれている場合、クエリは次の例のようなエラーを返します。
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
サポートされているフラグ値
| Flag | Description |
|---|---|
i |
大文字と小文字を区別しない (既定の false) |
m |
複数行モード: 開始/終了テキストに加えて、 ^ と $ 一致の開始/終了行 (既定の false) |
s |
.
\nと一致させる (既定のfalse) |
c |
大文字と小文字が区別されます (既定の true) |
group
返すstring_expression内の位置を決定するsubexpressionのキャプチャ グループ () を指定します。 グループは、かっこで囲まれたパターンのフラグメントであり、入れ子にすることができます。 グループには、左かっこがパターンで表示される順序で番号が付けられます。 値は整数であり、 >= 0 する必要があり、 pattern_expression内のグループの数を超えてはなりません。 既定値は 0 です。これは、位置が pattern_expression全体に一致する文字列に基づいていることを示します。
値が pattern_expression内のグループの数より大きい場合、関数は 0を返します。
戻り値
int
プラットフォームのサポート
- Azure SQL Managed Instanceでは、T-SQL正規表現関数はSQL Server 2025またはAlways-up-to-date更新ポリシーでのみ利用可能です。
- T-SQL正規表現関数はAzure SQL Database、FabricのSQL Database、そしてSQL Server 2025から利用可能です。
- T-SQL正規表現関数はSQL Server 2022以前のバージョンでは利用できません。
- T-SQL正規表現スカラー関数は、Fabric Data Warehouseのプレビュー機能として利用可能です。 詳細については、Fabric Data Warehouseの正則表現関数を参照してください。 T-SQLの正則表現テーブル値関数はFabric Data Warehouseでは利用できません。
Examples
PRODUCT_DESCRIPTION列の数字のみを含む最初の部分文字列の位置を検索します。
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
a列の文字PRODUCT_NAMEの 3 番目の出現位置 (大文字と小文字を区別しない) を検索します。
SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;
tで始まり、e列のPRODUCT_DESCRIPTION (大文字と小文字を区別) で終わる最初の部分文字列の末尾の位置を検索します。
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;