REGEXP_MATCHES (Transact-SQL)

Berlaku untuk: Database SQL SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed Instancedi Microsoft Fabric

Fungsi REGEXP_MATCHES ekspresi reguler bernilai tabel mengembalikan tabel substring yang ditangkap yang mencocokkan pola ekspresi reguler dengan sebuah string. Jika tidak ada kecocokan yang ditemukan, fungsi tidak mengembalikan baris.

REGEXP_MATCHES
(
    string_expression,
    pattern_expression [ , flags ]
)

Arguments

string_expression

Ekspresi string karakter.

Bisa berupa konstanta, variabel, atau kolom string karakter.

Jenis data: karakter, nchar, varchar , atau nvarchar.

Note

Fungsinya REGEXP_* mendukung jenis LOB (varchar(max) dan nvarchar(max)) hingga 2 MB untuk parameter string_expression .

pattern_expression

Pola ekspresi reguler untuk dicocokkan. Biasanya teks harfiah.

Jenis data: karakter, nchar, varchar , atau nvarchar. pattern_expression mendukung panjang karakter maksimum 8.000 byte.

flags

Satu atau beberapa karakter yang menentukan pengubah yang digunakan untuk mencari kecocokan. Jenisnya varchar atau karakter, dengan maksimum 30 karakter.

Contohnya, ims. Defaultnya adalah c. Jika string kosong (' ') disediakan, string tersebut akan diperlakukan sebagai nilai default ('c'). Berikan c atau ekspresi karakter lainnya. Jika bendera berisi beberapa karakter kontradiktif, maka SQL Server menggunakan karakter terakhir.

Misalnya, jika Anda menentukan ic regex mengembalikan pencocokan peka huruf besar/kecil.

Jika nilai berisi karakter selain yang tercantum di Nilai bendera yang didukung, kueri mengembalikan kesalahan seperti contoh berikut:

Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Nilai bendera yang didukung
Flag Description
i Tidak peka huruf besar/kecil (default false)
m Mode multibaris: ^ dan $ cocokkan baris awal/akhir selain teks awal/akhir (default false)
s Biarkan . cocok \n (default false)
c Peka huruf besar/kecil (default true)

Returns

Mengembalikan hasil tabular sebagai berikut:

Nama kolom Jenis data Description
match_id bigint Urutan kata yang cocok.
start_position int Memulai posisi indeks.
end_position int Mengakhiri posisi indeks.
match_value Jenis yang sama seperti string_expression atau varchar Ekspresi yang cocok.
substring_matches json Dokumen JSON yang menjelaskan kecocokan.

Dukungan platform

Memerlukan tingkat kompatibilitas database 170. Untuk mengatur tingkat kompatibilitas database, tinjau ALTER DATABASE tingkat kompatibilitas (Transact-SQL). Persyaratan tingkat kompatibilitas tidak berlaku jika konfigurasi cakupan database ALLOW_BUILTIN_TVF_IN_ALL_COMPAT_LEVELS diaktifkan.

  • Pada Azure SQL Managed Instance, fungsi ekspresi reguler T-SQL tersedia hanya dengan kebijakan pembaruanSQL Server 2025 atau Always-up-to-date.
  • Fungsi ekspresi reguler T-SQL tersedia di Azure SQL Database, SQL database di Fabric, dan mulai di SQL Server 2025.
  • Fungsi ekspresi reguler T-SQL tidak tersedia di SQL Server 2022 atau versi sebelumnya.
  • Dalam Fabric Data Warehouse, fungsi REGEXP_MATCHES dan REGEXP_SPLIT_TO_TABLE bernilai tabel ekspresi reguler tidak didukung. Fungsi skalar ekspresi reguler T-SQL tersedia sebagai fitur pratinjau di Fabric Data Warehouse.

Examples

Mengembalikan hasil tabular dari 'Learning #AzureSQL #AzureSQLDB' yang dimulai dengan # karakter diikuti oleh satu atau beberapa karakter alfanumerik (A-Z, a-z, 0-9) atau garis bawah (_).

SELECT *
FROM REGEXP_MATCHES ('Learning #AzureSQL #AzureSQLDB', '#([A-Za-z0-9_]+)');
match_id start_position end_position match_value substring_matches
1        10             18           #AzureSQL   [{"value":"AzureSQL","start":11,"length":8}]
2        20             30           #AzureSQLDB [{"value":"AzureSQLDB","start":21,"length":10}]

Mengembalikan string dari ABC string yang cocok yang dimulai dengan huruf A diikuti dengan tepat dua karakter.

SELECT *
FROM REGEXP_MATCHES ('ABC', '^(A)(..)$');
match_id start_position end_position match_value substring_matches
1        1              3            ABC         [{"value":"A","start":1,"length":1},{"value":"BC","start":2,"length":2}]
  • Fungsi ekspresi reguler