Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server 2025 (17.x) Préversion de
la base de données SQL Azure SQL Database
Azure SQL Managed Instance
SQL dans Microsoft Fabric
Cet article présente des expressions régulières pour SQL Server.
Remarque
En tant que fonctionnalité en préversion, la technologie présentée dans cet article est soumise aux conditions d’utilisation supplémentaires des préversions de Microsoft Azure.
Une expression régulière, ou regex, est une séquence de caractères qui définit un modèle de recherche pour le texte. Regex est couramment utilisé pour diverses tâches, notamment la mise en correspondance de modèles, la validation des données, la transformation des données et l’interrogation. Il offre un moyen flexible et efficace de rechercher, manipuler et gérer des opérations de données complexes.
Cette implémentation d’expression régulière est basée sur la bibliothèque d’expressions régulières RE2. Pour plus d’informations, consultez la syntaxe d’expression régulière RE2.
Par exemple:
Fonction | Descriptif |
---|---|
REGEXP_LIKE | Retourne une valeur booléenne qui indique si l’entrée de texte correspond au modèle regex. |
REGEXP_REPLACE | Retourne une chaîne source modifiée remplacée par une chaîne de remplacement, où l’occurrence du modèle regex trouvé. |
REGEXP_SUBSTR | Extrait des parties d’une chaîne en fonction d’un modèle d’expression régulière. Retourne nième occurrence d’une sous-chaîne qui correspond au modèle regex. |
REGEXP_INSTR | Retourne la position de début ou de fin de la sous-chaîne correspondante, en fonction de l’option fournie. |
REGEXP_COUNT | Retourne le nombre de fois où le modèle regex se produit dans une chaîne. |
REGEXP_MATCHES | Retourne une table de sous-chaînes capturées qui correspondent à un modèle d’expression régulière à une chaîne. Si aucune correspondance n’est trouvée, la fonction ne retourne aucune ligne. |
REGEXP_SPLIT_TO_TABLE | Retourne une table de chaînes fractionnées, délimitées par le modèle regex. S’il n’y a pas de correspondance avec le modèle, la fonction retourne la chaîne. |
Les expressions régulières peuvent être composées de caractères littéraux et de méta-caractères, qui ont des significations et des fonctions spéciales.
Une expression régulière simple est un caractère littéral unique. Les caractères correspondent eux-mêmes, à l’exception des méta-caractères. Les méta-caractères incluent *
, , +
?
, (
, )
, ou |
. Pour faire correspondre un méta-caractère, échappez-le avec une barre oblique inverse. Par exemple, \*
correspond au caractère astérisque littéral (*
).
Caractères d’expression régulière acceptés
Expressions à un seul caractère
Types d’expressions à un seul caractère | Exemples |
---|---|
tout caractère, éventuellement avec une nouvelle ligne (s=true) | . |
classe de caractères | [xyz] |
classe de caractères inversée | [^xyz] |
Classes de caractères perl | \d |
classe de caractères perl inversée | \D |
Classes de caractères ASCII | [[:alpha:]] |
classe de caractères ASCII inversée | [[:^alpha:]] |
Classe de caractères Unicode (nom à une lettre) | \pN |
Classe de caractères Unicode | \p{Greek} |
classe de caractères Unicode inversée (nom à une lettre) | \PN |
classe de caractères Unicode inversée | \P{Greek} |
Classes de caractères perl
Le tableau suivant répertorie les classes de caractères Perl actuellement prises en charge.
Classes de caractères perl (tout ASCII uniquement) | Descriptif |
---|---|
\d |
chiffres ( [0-9] ) |
\D |
pas de chiffres ( [^0-9] ) |
\s |
espace blanc ( [\t\n\f\r ] ) |
\S |
pas d’espace blanc ( [^\t\n\f\r ] ) |
\w |
caractères de mot ( [0-9A-Za-z_] ) |
\W |
caractères non alphanumériques ( [^0-9A-Za-z_] ) |
classes de caractères ASCII
Le tableau suivant répertorie les classes de caractères ASCII actuellement prises en charge.
classes de caractères ASCII | Descriptif |
---|---|
[[:alnum:]] |
alphanumérique ( [0-9A-Za-z] ) |
[[:alpha:]] |
alphabétique ( [A-Za-z] ) |
[[:ascii:]] |
ASCII ( [\x00-\x7F] ) |
[[:blank:]] |
vide ( [\t ] ) |
[[:cntrl:]] |
contrôle ( [\x00-\x1F\x7F] ) |
[[:digit:]] |
chiffres ( [0-9] ) |
[[:graph:]] |
graphique ( [!-~] ou [A-Za-z0-9!“#$%&’()*+,\-./:;<=>?@[\\\]^_`{|}~] ) |
[[:lower:]] |
minuscules ( [a-z] ) |
[[:print:]] |
imprimable ( [ -~] ou [ [:graph:]] ) |
[[:punct:]] |
ponctuation ( [!-/:-@[-\``{-~] ) |
[[:space:]] |
espace blanc ( [\t\n\v\f\r ] ) |
[[:upper:]] |
majuscule ( [A-Z] ) |
[[:word:]] |
caractères de mot ( [0-9A-Za-z_] ) |
[[:xdigit:]] |
chiffre hexadécimal ( [0-9A-Fa-f] ) |
Caractères littéraux
- Lettres
- Numéros
- Symboles
Métacharacteurs
-
*
correspond à zéro ou plusieurs occurrences du caractère précédent -
^
correspond au début d’une ligne
Groupements
Regroupez et capturez des parties du modèle avec :
- Parenthèses
( )
- Des crochets
[ ]
- Des accolades
{ }
Drapeaux
Utilisez des indicateurs pour modifier le comportement de l’expression. Par exemple:
i
m
s
c
Cette implémentation prend en charge la norme POSIX des expressions régulières suivant RE2 et prend en charge la version PCRE/PCRE2 de la syntaxe des expressions régulières, qui est compatible avec la plupart des moteurs et outils d’expression régulière modernes. Il existe différentes versions d’expressions régulières, telles que POSIX, ANSI, Perl et PCRE, qui ont différentes syntaxes et fonctionnalités.
Spécifications
- Outil client SQL, tel qu’Azure Data Studio, SQL Server Management Studio ou Visual Studio Code.
- Connaissance de base de la syntaxe et des requêtes SQL.
- Compréhension de base de la syntaxe et des concepts d’expression régulière.
Questions fréquentes (FAQ)
Quel est l’impact sur les performances de l’utilisation de regex ?
Les requêtes regex peuvent avoir un impact sur les performances en fonction de la complexité du modèle regex, de la taille des données de texte et du nombre de lignes impliquées. Vous pouvez utiliser le plan d’exécution et les statistiques pour surveiller et optimiser les performances de vos requêtes regex.
Problèmes connus, comportements et limitations
Voici les éléments qui ne sont actuellement pas pris en charge dans cet aperçu :
- Types de données LOB (varchar(max) ou nvarchar(max)) pour
string_expressions
- Les fonctions d’expression régulière ne sont pas prises en charge sur les tables OLTP optimisées en mémoire