Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x)
Azure SQL Database Azure SQL
Managed Instance
SQL Database v Microsoft Fabric
Vrátí upravený zdrojový řetězec nahrazený náhradním řetězcem, kde byl nalezen výskyt vzoru regulárního výrazu. Pokud nejsou nalezeny žádné shody, vrátí funkce původní řetězec.
REGEXP_REPLACE
(
string_expression,
pattern_expression [ , string_replacement [ , start [ , occurrence [ , flags ] ] ] ]
)
Note
Regulární výrazy jsou k dispozici ve službě Azure SQL Managed Instance se zásadami aktualizaceSQL Serveru 2025 nebo Always-up-to-date.
Arguments
string_expression
Výraz řetězce znaků.
Může to být konstanta, proměnná nebo sloupec řetězce znaků.
Datové typy: char, nchar, varcharnebo nvarchar.
Note
Funkce REGEXP_LIKEa , REGEXP_COUNTREGEXP_INSTR podporují typy LOB (varchar(max) a nvarchar(max)) až 2 MB pro string_expression parametr.
pattern_expression
Vzor regulárního výrazu, který se má shodovat. Obvykle textový literál.
Datové typy: char, nchar, varcharnebo nvarchar. pattern_expression podporuje maximální délku znaků 8 000 bajtů.
string_replacement
Řetězcový výraz, který určuje náhradní řetězec pro odpovídající podřetězce a nahradí podřetězce odpovídající vzorem. String_replacement může být datových typů char, varchar, nchar a nvarchar. Pokud je zadán prázdný řetězec (''), funkce odebere všechny odpovídající podřetězce a vrátí výsledný řetězec. Výchozí náhradní řetězec je prázdný řetězec ('').
String_replacement může obsahovat \n, kde n je 1 až 9, aby bylo možné indikovat, že podřetězce zdroje odpovídající n'th závorce (podvýraz) vzoru by se měla vložit a může obsahovat & indikovat, že podřetězce odpovídající celému vzoru by se měl vložit. Napište \ pokud potřebujete do náhradního textu vložit zpětné lomítko literálu.
Například
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3')
Returns:
(123) 456-7890
Pokud je zadaný \n parametr string_replacement větší než počet skupin v pattern_expression, funkce tuto hodnotu ignoruje.
Například:
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
Returns:
(123) ()-xxxx
start
Zadejte počáteční pozici pro hledání v rámci vyhledávacího řetězce. Optional. Typ je nebo bigint.
Číslování je 1, což znamená, že první znak výrazu je 1 a hodnota musí být >= 1. Pokud je počáteční výraz menší než 1, vrátí chybu. Pokud je počáteční výraz větší než délka string_expression, vrátí funkce string_expression. Výchozí hodnota je 1.
occurrence
Výraz (kladné celé číslo), který určuje výskyt vzorového výrazu ve zdrojovém řetězci, který má být prohledán nebo nahrazen. Výchozí hodnota je 1. Vyhledá první znak string_expression. Pro kladné celé číslo nvyhledá nth výskyt začínající prvním znakem za prvním výskytem pattern_expression atd.
flags
Jeden nebo více znaků, které určují modifikátory používané k hledání shod. Typ je varchar nebo znak, s maximálně 30 znaky.
Například ims. Výchozí hodnota je c. Pokud je zadaný prázdný řetězec (' '), bude považován za výchozí hodnotu ('c'). Zadejte c nebo jiné výrazy znaků. Pokud příznak obsahuje více protichůdných znaků, sql Server použije poslední znak.
Pokud například zadáte ic regulární výraz vrátí porovnávání s rozlišováním velkých a malých písmen.
Pokud hodnota obsahuje jiný znak než ty uvedené v podporované hodnoty příznaku, dotaz vrátí chybu jako v následujícím příkladu:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Podporované hodnoty příznaku
| Flag | Description |
|---|---|
i |
Nerozlišují se malá a velká písmena (výchozí false) |
m |
Režim více řádků: ^ a $ porovná počáteční/koncový řádek kromě počátečního/koncového textu (výchozí false) |
s |
Nechte . odpovídat \n (výchozí false) |
c |
Malá a velká písmena (výchozí true) |
Návratová hodnota
Expression.
Examples
Nahraďte všechny výskyty a nebo eX v názvech produktů.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
Nahraďte první výskyt cat nebo dogpet v popisech produktu.
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
Nahraďte poslední čtyři číslice telefonních čísel hvězdičkami.
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;