Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Database a Microsoft Fabricben
Egy táblázatot ad vissza a rögzített alstringekről, amelyek egy szabályos kifejezési mintát egyeztetnek egy stringhez. Ha nem található egyezés, a függvény nem ad vissza sort.
REGEXP_MATCHES
(
string_expression,
pattern_expression [ , flags ]
)
170-es adatbázis-kompatibilitási szintet igényel. Az adatbázis-kompatibilitási szint beállításához tekintse át az ALTER DATABASE (Transact-SQL) kompatibilitási szintjét.
Note
A reguláris kifejezések az SQL Server 2025 vagy always-up-todátumfrissítési szabályzattal rendelkező felügyelt Azure SQL-példányban érhetők el.
Arguments
string_expression
Karaktersztring kifejezése.
Lehet állandó, változó vagy karaktersztring oszlopa.
Adattípusok: karakter, nchar, varcharvagy nvarchar.
Note
A REGEXP_LIKE, REGEXP_COUNTés REGEXP_INSTR függvények legfeljebb 2 MB-ig támogatják a LOB-típusokat (varchar(max) és nvarchar(max)) a string_expression paraméterhez.
pattern_expression
Egyező reguláris kifejezésminta. Általában szövegkonstans.
Adattípusok: karakter, nchar, varcharvagy nvarchar. pattern_expression legfeljebb 8000 bájt karakterhosszt támogat.
flags
Egy vagy több karakter, amely megadja az egyezések kereséséhez használt módosítókat. A típus varchar vagy karakter, legfeljebb 30 karakterből áll.
Például: ims. Az alapértelmezett érték a c. Ha üres sztring (' ') van megadva, akkor a rendszer az alapértelmezett értékként kezeli ('c'). Adjon meg c vagy bármely más karakterkifejezést. Ha a jelölő több egymásnak ellentmondó karaktert tartalmaz, akkor az SQL Server az utolsó karaktert használja.
Ha például ic a regex megkülönbözteti a kis- és nagybetűket.
Ha az érték Támogatott jelölőértékeklistán felsoroltaktól eltérő karaktert tartalmaz, a lekérdezés az alábbi példához hasonló hibát ad vissza:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Támogatott jelölőértékek
| Flag | Description |
|---|---|
i |
Kis- és nagybetűk megkülönböztetése (alapértelmezett false) |
m |
Többsoros mód: ^ és $ a kezdő/záró szöveg mellett egyezik a kezdő/záró vonallal (alapértelmezett false) |
s |
Egyezés beállítása .\n (alapértelmezett false) |
c |
Kis- és nagybetűk megkülönböztetése (alapértelmezett true) |
Returns
Táblázatos eredményt ad vissza az alábbiak szerint:
| Oszlop neve | Adattípus | Description |
|---|---|---|
match_id |
bigint | Az egyező szavak sorozata. |
start_position |
int | Az index pozíciója. |
end_position |
int | Záró indexpozíció. |
match_value |
Ugyanaz a típus, mint a varchar vagy a string_expressionvarchar |
Egyező kifejezés. |
substring_matches |
json | Egyezést leíró JSON-dokumentum. |
Examples
Táblázatos eredményeket ad vissza a kezdő karakterből 'Learning #AzureSQL #AzureSQLDB'# , amelyet egy vagy több alfanumerikus karakter (A-Z, a-z, 0-9) vagy aláhúzás (_) követ.
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}]
A betűvel ABC kezdődő, pontosan két karaktert követő sztringeket adja vissza az adott egyező sztringekbőlA.
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}]