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 módosított forrássztringet ad vissza, amelyet helyettesítő sztring vált fel, ahol a reguláris kifejezésminta előfordulása található. Ha nem található egyezés, a függvény az eredeti sztringet adja vissza.
REGEXP_REPLACE
(
string_expression,
pattern_expression [ , string_replacement [ , start [ , occurrence [ , flags ] ] ] ]
)
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.
string_replacement
Sztringkifejezés, amely megadja a helyettesítő sztringet az egyező részsztringekhez, és lecseréli a mintával egyező részsztringeket. A string_replacement lehet karakter, varchar, nchar és nvarchar adattípus. Ha egy üres sztring ('') van megadva, a függvény eltávolítja az összes egyező részsztringet, és visszaadja az eredményül kapott sztringet. Az alapértelmezett helyettesítő sztring az üres sztring ('').
A string_replacement tartalmazhat \n, ahol n 1–9, jelezve, hogy a minta n'th zárójeles csoportjának (alexpressziójának) megfelelő forrásszúrást be kell szúrni, és & is tartalmazhat, amely azt jelzi, hogy a teljes mintának megfelelő aláhúzást be kell szúrni. Írjon \ értéket, ha literális fordított perjelet kell elhelyeznie a helyettesítő szövegben.
Például
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3')
Returns:
(123) 456-7890
Ha a megadott \nstring_replacement érték nagyobb, mint a pattern_expression csoportok száma, akkor a függvény figyelmen kívül hagyja az értéket.
Például:
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
Returns:
(123) ()-xxxx
start
Adja meg a keresési sztringen belüli keresés kezdő helyét. Optional. A típus int vagy bigint.
A számozás 1-alapú, ami azt jelenti, hogy a kifejezés első karaktere 1, és az értéknek >= 1kell lennie. Ha a kezdő kifejezés kisebb, mint 1, hibát ad vissza. Ha a kezdő kifejezés nagyobb, mint a string_expression hossza, a függvény string_expression ad vissza. Az alapértelmezett érték a 1.
occurrence
Kifejezés (pozitív egész szám), amely meghatározza, hogy a mintakifejezés mely előfordulása szerepel a forrássztringben, amelyet keresni vagy cserélni szeretne. Az alapértelmezett érték 1. A string_expression első karakterére keres. Pozitív egész szám nesetén a nthpattern_expression első előfordulását követő első karakterrel kezdődő előfordulást keresi, és így tovább.
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) |
Visszaadott érték
Expression.
Examples
Cserélje le a a vagy e összes előfordulását X a terméknevekben.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
Cserélje le a cat vagy dog első előfordulását pet a termékleírásokban
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
Cserélje le a telefonszámok utolsó négy számjegyét csillagra
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;