Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Analytics-eindpunt in Microsoft Fabric en Warehouse in Microsoft Fabric
SQL Database in Microsoft Fabric SQL Database in Microsoft Fabric
De REGEXP_INSTR scalaire, reguliere expressiefunctie geeft de begin- of eindpositie van de gematchte substring terug, afhankelijk van de waarde van het return_option argument.
REGEXP_INSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , return_option [ , flags [ , group ] ] ] ] ]
)
Arguments
string_expression
Een expressie van een tekenreeks.
Dit kan een constante, variabele of kolom van tekenreeks zijn.
Gegevenstypen: teken, nchar, varcharof nvarchar.
Note
De REGEXP_* functies ondersteunen LOB-typen (varchar(max) en nvarchar(max)) tot 2 MB voor de string_expression-parameter .
pattern_expression
Patroon voor reguliere expressies dat overeenkomt. Meestal een letterlijke tekst.
Gegevenstypen: teken, nchar, varcharof nvarchar. pattern_expression ondersteunt een maximale tekenlengte van 8.000 bytes.
start
Hiermee geeft u de beginpositie voor de zoekopdracht in de zoekreeks. Optional. Het type is int of bigint.
De nummering is gebaseerd op 1, wat betekent dat het eerste teken in de expressie is 1 en de waarde moet worden >= 1. Als de beginexpressie kleiner is dan 1, wordt er een fout geretourneerd. Als de beginexpressie groter is dan de lengte van string_expression, retourneert 0de functie . De standaardwaarde is 1.
occurrence
Een expressie (positief geheel getal) die aangeeft welk exemplaar van de patroonexpressie in de brontekenreeks moet worden doorzocht of vervangen. De standaardwaarde is 1. Hiermee wordt gezocht naar het eerste teken van de string_expression. Voor een positief geheel getal nwordt gezocht naar het nth exemplaar dat begint met het eerste teken na het eerste exemplaar van de pattern_expression, enzovoort.
return_option
Hiermee geeft u op of de begin- of eindpositie van de overeenkomende subtekenreeks moet worden geretourneerd. Gebruik 0 voor het begin en 1 voor het einde. De standaardwaarde is 0. De query retourneert een fout voor een andere waarde.
flag
Een of meer tekens die de modifiers opgeven die worden gebruikt voor het zoeken naar overeenkomsten. Het type is varchar of teken, met maximaal 30 tekens.
Bijvoorbeeld ims. De standaardwaarde is c. Als er een lege tekenreeks wordt opgegeven (' '), wordt deze behandeld als de standaardwaarde ('c'). Geef c of andere tekenexpressies op. Als de vlag meerdere tegenstrijdige tekens bevat, gebruikt SQL Server het laatste teken.
Als u bijvoorbeeld opgeeft ic de regex hoofdlettergevoelige overeenkomsten retourneert.
Als de waarde een ander teken bevat dan de waarden in Ondersteunde vlagwaarden, retourneert de query een fout zoals in het volgende voorbeeld:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Ondersteunde vlagwaarden
| Flag | Description |
|---|---|
i |
Hoofdlettergevoelig (standaard false) |
m |
Modus met meerdere regels: ^ en $ begin-/eindregel vergelijken naast begin-/eindtekst (standaard false) |
s |
Laten . overeenkomen \n (standaard false) |
c |
Hoofdlettergevoelig (standaard true) |
group
Hiermee geeft u op welke capturegroep (subexpression) van een pattern_expression bepaalt welke positie binnen string_expression moet worden geretourneerd. De groep is een fragment van het patroon tussen haakjes en kan worden genest. De groepen worden genummerd in de volgorde waarin de haakjes links worden weergegeven in patroon. De waarde is een geheel getal en moet niet groter zijn >= 0 dan het aantal groepen in de pattern_expression. De standaardwaarde is 0, wat aangeeft dat de positie is gebaseerd op de tekenreeks die overeenkomt met het hele pattern_expression.
Als de waarde groter is dan het aantal groepen in pattern_expression, retourneert 0de functie .
Retourwaarde
int
Platformondersteuning
- In Azure SQL Managed Instance zijn T-SQL reguliere expressiefuncties beschikbaar met het SQL Server 2025- of Always-up-to-datumupdatebeleid.
- T-SQL reguliere expressiefuncties zijn beschikbaar in Azure SQL Database, SQL-database in Fabric en vanaf SQL Server 2025.
- T-SQL reguliere expressiefuncties zijn niet beschikbaar in SQL Server 2022 of eerdere versies.
- T-SQL reguliere expressie-scalaire functies zijn beschikbaar als previewfunctie in Fabric Data Warehouse. Voor meer informatie, zie Reguliere expressiefuncties in Fabric Data Warehouse. T-SQL tabel-waarde functies met reguliere expressies zijn niet beschikbaar in Fabric Data Warehouse.
Examples
Zoek de positie van de eerste subtekenreeks die alleen cijfers in de kolom PRODUCT_DESCRIPTION bevat.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
Zoek de positie van het derde exemplaar van de letter a (hoofdlettergevoelig) in de kolom PRODUCT_NAME.
SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;
Zoek de positie van het einde van de eerste subtekenreeks die begint met t en eindigt op e (hoofdlettergevoelig) in de kolom PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;