Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2025 (17.x) Förhandsversion av
Azure SQL Database
Azure SQL Managed Instance
SQL Database i Förhandsversion av Microsoft Fabric
Note
Som en förhandsversionsfunktion omfattas tekniken som presenteras i den här artikeln av kompletterande användningsvillkor för Microsoft Azure Previews.
Returnerar en modifierad källsträng som ersätts av en ersättningssträng, där förekomsten av det reguljära uttrycksmönstret hittades. Om inga matchningar hittas returnerar funktionen den ursprungliga strängen.
REGEXP_REPLACE
(
string_expression,
pattern_expression [, string_replacement [, start [, occurrence [, flags ] ] ] ]
)
Note
Reguljära uttryck är tillgängliga i Azure SQL Managed Instance med sql Server 2025- eller always-up-to-date update-principen.
Arguments
string_expression
Ett uttryck för en teckensträng.
Kan vara en konstant, variabel eller kolumn med teckensträng.
Datatyper: char, nchar, varchareller nvarchar.
Note
Funktionerna REGEXP_LIKE, REGEXP_COUNToch REGEXP_INSTR stöder LOB-typer (varchar(max) och nvarchar(max)) upp till 2 MB för parametern string_expression .
pattern_expression
Mönster för reguljära uttryck som ska matchas. Vanligtvis en textliteral.
Datatyper: char, nchar, varchareller nvarchar. pattern_expression stöder en maximal teckenlängd på 8 000 byte.
string_replacement
Stränguttryck som anger ersättningssträngen för matchande understrängar och ersätter de understrängar som matchas av mönstret. String_replacement kan vara av datatyperna char, varchar, nchar och nvarchar. Om en tom sträng ('') anges tar funktionen bort alla matchade delsträngar och returnerar den resulterande strängen. Standardsträngen för ersättning är den tomma strängen ('').
Den string_replacement kan innehålla \n, där n är 1 till 9, för att indikera att källundersträngen som matchar den n:e parentesiserade gruppen (underuttryck) av mönstret ska infogas och att den kan innehålla & för att indikera att delsträngen som matchar hela mönstret ska infogas. Skriv \ om du behöver placera ett literalt omvänt snedstreck i ersättningstexten.
Till exempel
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3')
Returns:
(123) 456-7890
Om angivet \n i string_replacement är större än antalet grupper i pattern_expression ignorerar funktionen värdet.
Till exempel:
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
Returns:
(123) ()-xxxx
start
Ange startpositionen för sökningen i söksträngen. Optional. Typen är int eller bigint.
Numreringen är 1-baserad, vilket innebär att det första tecknet i uttrycket är 1 och värdet måste vara >= 1. Om startuttrycket är mindre än 1returneras felet. Om startuttrycket är större än längden på string_expression returnerar funktionen string_expression. Standardvärdet är 1.
occurrence
Ett uttryck (positivt heltal) som anger vilken förekomst av mönsteruttrycket i källsträngen som ska sökas eller ersättas. Standardvärdet är 1. Söker efter det första tecknet i string_expression. För ett positivt heltal nsöker nth den efter förekomsten som börjar med det första tecknet efter den första förekomsten av pattern_expression och så vidare.
flags
Ett eller flera tecken som anger de modifierare som används för att söka efter matchningar. Typen är varchar eller tecken, med högst 30 tecken.
Till exempel ims. Standardvärdet är c. Om en tom sträng (' ') anges behandlas den som standardvärdet ('c'). Ange c eller andra teckenuttryck. Om flaggan innehåller flera motstridiga tecken använder SQL Server det sista tecknet.
Om du till exempel anger ic returnerar regex skiftlägeskänslig matchning.
Om värdet innehåller ett annat tecken än de som anges i flagga som stödsreturnerar frågan ett fel som liknar följande exempel:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Flaggvärden som stöds
| Flag | Description |
|---|---|
i |
Skiftlägesokänsligt (standard false) |
m |
Flerradsläge: ^ och $ matcha start-/slutlinje utöver start-/sluttext (standard false) |
s |
Låt . matcha \n (standard false) |
c |
Skiftlägeskänsligt (standard true) |
Returvärde
Expression.
Examples
Ersätt alla förekomster av a eller e med X i produktnamnen.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
Ersätt den första förekomsten av cat eller dog med pet i produktbeskrivningarna
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
Ersätt de fyra sista siffrorna i telefonnumren med asterisker
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;