Caractères spéciaux pour Rechercher une expression régulière et Rechercher et remplacer une chaîne

Aide LabVIEW 2014

Date d'édition : June 2014

Numéro de référence : 371361L-0114

»Afficher les infos sur le produit
Télécharger l'aide (Windows uniquement)

Les expressions régulières requièrent des combinaisons de caractères spécifiques pour trouver des patterns. Utilisez des expressions régulières pour rechercher une partie ou un sous-ensemble d'une chaîne. Vous pouvez par exemple utiliser des expressions régulières pour rechercher une variable dans une chaîne de code, ou une valeur spécifique dans un rapport.

Remarque Remarque  Les fonctions Rechercher une expression régulière et Rechercher et remplacer une chaîne ne supportent pas les caractères Null dans les chaînes. De plus, une expression régulière peut renvoyer une chaîne vide pour une recherche réussie. Si une recherche d'expression régulière ne renvoie aucun résultat, offset après correspondance renvoie -1.

Le support d'expression régulière est fourni par le package de bibliothèques PCRE. Reportez-vous à la page Copyright du livre Informations juridiques de l'onglet Sommaire pour en savoir plus sur la licence utilisée pour la redistribution du package de bibliothèques PCRE.

Consultez la documentation sur les expressions régulières et Perl 5, à www.pcre.org, pour obtenir des informations complémentaires sur les expressions régulières compatibles avec Perl.

Caractères spéciaux pour les entrées Expression régulière et Chaîne recherchée

Utilisez les caractères spéciaux du tableau suivant dans l'entrée expression régulière de la fonction Rechercher une expression régulière et dans l'entrée chaîne recherchée de la fonction Rechercher et remplacer une chaîne. Pour utiliser des caractères spéciaux avec la fonction Rechercher et remplacer une chaîne, cliquez sur la fonction avec le bouton droit et sélectionnez Expression régulière dans le menu local.

Remarque Remarque  Les caractères spéciaux suivants ne sont compatibles qu'avec les fonctions Rechercher une expression régulière et Rechercher et remplacer une chaîne. La fonction Rechercher une expression utilise un ensemble d'expressions régulières plus limité mais s'exécute plus rapidement que la fonction Rechercher une expression régulière. Reportez-vous à la rubrique Caractères spéciaux pour la fonction Rechercher une expression pour en savoir plus sur les expressions régulières compatibles avec la fonction Rechercher une expression.
Caractère spécialDescriptionExemples
.
(point)
Correspond à n'importe quel caractère simple, à l'exception du caractère de retour à la ligne. Entre crochets, . est littéral. Chaîne en entrée : Bienvenue dans LabVIEW.
Expression régulière : s....
Correspondance : s Lab

Si vous entrez [z.] comme expression régulière, le point est littéral et l'expression correspond à . ou z. Dans cet exemple, [z.] renvoie ..
* Marque le caractère, le groupe de caractères ou la classe de caractères qui le précède comme pouvant apparaître aucune fois ou plus dans l'entrée. Comme un astérisque peut correspondre à un pattern qui n'apparaît aucune fois, les expressions régulières qui comportent un astérisque peuvent renvoyer une chaîne vide si tout le pattern est marqué d'un astérisque. Par défaut, ce quantificateur renvoie le maximum de caractères possible. Chaîne en entrée : Hello LabVIEW!
Expression régulière : el*
Correspondance : ell

Les expressions telles que w* ou (welcome)* renvoient une chaîne vide si la fonction ne trouve aucune autre correspondance.
+ Marque le caractère, le groupe de caractères ou la classe de caractères qui le précède comme pouvant apparaître une ou plusieurs fois dans l'entrée. Par défaut, ce quantificateur renvoie le maximum de caractères possible. Chaîne en entrée : Hello LabVIEW!
Expression régulière : el+
Correspondance : ell
? Marque le caractère, le groupe de caractères ou la classe de caractères qui le précède comme pouvant apparaître aucune ou une fois dans l'entrée. Par défaut, ce quantificateur renvoie le maximum de caractères possible.

S'il est utilisé juste après un quantificateur, ? le modifie pour renvoyer la plus courte correspondance possible. Les quantificateurs modifiables sont *, + et {}.
Chaîne en entrée : Hello LabVIEW!
Expression régulière : el?
Correspondance : el

Chaîne en entrée : <ul><li>Hello</li><li>LabVIEW</li></ul>
Expression régulière : <li>.+?</li>
Correspondance : <li>Hello</li>

Dans le deuxième exemple, si vous supprimez ? de l'expression régulière, la chaîne renvoyée devient <li>Hello</li><li>LabVIEW</li> car + renvoie le maximum de caractères possible si vous n'ajoutez pas ? juste après. Vous pouvez utiliser cette expression régulière pour renvoyer n'importe quelle chaîne qui se trouve entre des balises <li> et </li>.
{n,N} Marque le caractère, le groupe de caractères ou la classe de caractères qui le précède comme pouvant apparaître le nombre de fois que vous spécifiez, n étant le minimum et N le maximum. Vous pouvez aussi ne spécifier qu'un seul nombre. Si vous spécifiez une gamme, ce quantificateur renvoie la chaîne qui contient le plus de fois le pattern. Chaîne en entrée : <ul><li>Hello</li><li>Lab</li><li>VIEW</li><li>!</li></ul>
Expression régulière : (<li>.+?</li>){2}
Correspondance : <li>Hello</li><li>Lab</li>

Chaîne en entrée : <ul><li>Hello</li><li>Lab</li><li>VIEW</li><li>!</li></ul>
Expression régulière : (<li>.+?</li>){1,3}
Correspondance : <li>Hello</li><li>Lab</li><li>VIEW</li>

Dans le deuxième exemple, la limite de correspondances minimale est 1 et la maximale est 3. Comme l'expression régulière est recherchée autant de fois que possible dans la limite spécifiée, la chaîne renvoyée comporte trois fois le pattern.
[] Crée une classe de caractères pour vous permettre de rechercher n'importe quel caractère d'un ensemble de caractères que vous spécifiez. Par exemple, [abc] correspond à a, b ou c.

Vous pouvez utiliser - pour spécifier une gamme de caractères. Par exemple, [a-z] correspond à n'importe quelle lettre minuscule.

Les fonctions Rechercher une expression régulière et Rechercher et remplacer une chaîne interprètent les caractères spéciaux entre crochets littéralement, à l'exception de ^, - et \.
Chaîne en entrée : version=14.0.1
Expression régulière : [0-9]+(\.[0-9]+)*
Correspondance : 14.0.1

L'expression [0-9] correspond à n'importe quel chiffre. Le signe + recherche la classe de caractères qui le précède, [0-9], une ou plusieurs fois, mais autant de fois que possible. Les parenthèses créent un groupe de caractères, ce qui crée une correspondance partielle du caractère . et de tous les chiffres qui le suivent. L'expression \. correspond à un caractère . littéral. Le signe + recherche la classe de caractères qui le précède, [0-9], une ou plusieurs fois, mais autant de fois que possible. L'astérisque correspond aucune ou une fois au groupe de caractères qui le précède, (\.[0-9]+) et renverra donc des entiers s'il n'y a pas de caractère ".". Vous pouvez utiliser cette expression régulière pour rechercher tout entier, nombre décimal où le point est utilisé comme séparateur décimal, numéro de version, adresse IPv4, ou autre séquence de nombres séparés par des caractères ".".
( ) Crée un groupe de caractères qui vous permet de rechercher tout un ensemble de caractères spécifié. Tout quantificateur qui suit immédiatement un groupe de caractères quantifie tout le groupe.

Les parenthèses créent aussi des correspondances partielles où chaque groupe de caractères renvoie une correspondance partielle. Si vous imbriquez un groupe de caractères dans un autre groupe, l'expression régulière crée d'abord une correspondance partielle pour le groupe externe avant d'en créer une pour le groupe interne. Développez le nœud de la fonction Rechercher une expression régulière pour accéder aux sorties de correspondances partielles.

Vous pouvez aussi faire référence aux correspondances partielles plus loin dans une expression en utilisant des références arrière. Reportez-vous à la section Références arrière ci-dessous pour en savoir plus sur l'utilisation de références arrière dans les expressions régulières.
Chaîne en entrée : Hello LabVIEW!
Expression régulière : (el.)..(L..)
Correspondance : ello Lab
Correspondance partielle 1 : ell
Correspondance partielle 2 : Lab

Chaîne en entrée : Hello LabVIEW!
Expression régulière : (.(el.).).(L..)
Correspondance : Hello Lab
Correspondance partielle 1 : Hello
Correspondance partielle 2 : ell
Correspondance partielle 3 : Lab
| Sépare différentes correspondances possibles. Ce caractère est utile si vous voulez rechercher un de plusieurs groupes de caractères. Une expression régulière qui contient (|) renvoie la première correspondance trouvée par la fonction dans la chaîne en entrée, quel que soit l'ordre des correspondances possibles. Par exemple, les expressions régulières chien|chat et chat|chien renvoient toutes deux chien dans le chien a chassé le chat. Chaîne en entrée : valeur=FALSE total=12,34 token=TRUE
Expression régulière : (valeur|token)=(TRUE|FALSE)
Correspondance : valeur=FALSE
Correspondance partielle 1 : valeur
Correspondance partielle 2 : FALSE

L'expression régulière renvoie la première correspondance possible dans la chaîne en entrée. Si token=TRUE apparaissait avant valeur=FALSE dans la chaîne en entrée, l'expression régulière renverrait token=TRUE.
^ Recherche une expression au tout début d'une chaîne s'il est utilisé comme premier caractère d'une expression.

Si vous définissez l'entrée multiligne ? à VRAI dans la fonction Rechercher une expression régulière ou Rechercher et remplacer une chaîne, ^ correspond au début de n'importe quelle ligne d'une chaîne qui utilise les fins de ligne de la plate-forme actuelle.

Vous pouvez aussi indiquer un caractère qui ne se trouve pas dans une classe de caractères donnée en ajoutant ^ au début de la classe. Par exemple, [^0-9] correspond à n'importe quel caractère autre qu'un chiffre compris entre 0 et 9. [^a-zA-Z0-9] correspond à n'importe quel caractère qui n'est ni une lettre majuscule ou minuscule, ni un chiffre.
Chaîne en entrée : Hello LabVIEW!
Expression régulière : ^[^ ]+
Correspondance : Hello

L'expression régulière renvoie le maximum de caractères possible (autres qu'un espace) en partant du début de la chaîne en entrée. Vous pouvez utiliser cette expression régulière pour isoler le premier mot, le premier nombre ou la première combinaison de caractères d'une chaîne.

Chaîne en entrée : Hello
                   LabVIEW

Expression régulière : ^LabVIEW
Correspondance : LabVIEW

L'expression régulière ne correspond à LabVIEW que si vous définissez multiligne ? à VRAI.
$ Recherche une expression à la fin d'une chaîne s'il est utilisé comme dernier caractère de l'expression.

Si vous définissez l'entrée multiligne ? à VRAI dans la fonction Rechercher une expression régulière ou Rechercher et remplacer une chaîne, $ correspond à la fin de n'importe quelle ligne d'une chaîne qui utilise les fins de ligne de la plate-forme actuelle.
Chaîne en entrée : Hello LabVIEW!
Expression régulière : [^ ]+$
Correspondance : LabVIEW!

L'expression régulière renvoie le maximum de caractères possibles (autres qu'un espace) à partir de la fin de la chaîne en entrée. Vous pouvez utiliser cette expression régulière pour isoler le dernier mot, le dernier nombre ou la dernière combinaison de caractères d'une chaîne.

Chaîne en entrée : Hello
                   LabVIEW

Expression régulière : Hello$
Correspondance : Hello

L'expression régulière ne correspond à Hello que si vous définissez multiligne ? à VRAI.
\ Annule la signification spéciale de tout caractère spécial de cette liste qui suit immédiatement la barre oblique inverse, et recherche le caractère littéral.

Les expressions échappées suivantes ont une signification spéciale :
  • \b - Représente une limite de mot. Une limite de mot est un caractère qui n'est pas un caractère de mot adjacent à un caractère de mot ou vice versa. Un caractère de mot est un caractère alphanumérique ou un tiret bas (_). Par exemple, \bchat correspond à chat dans chateau, mais pas dans achat. chat\b correspond à chat dans achat, mais pas dans chateau. \bchat\b correspond à chat dans chat, mais ni dans achat ni dans chateau.
  • \c - Correspond à n'importe quelle commande ou caractère non imprimable ; comprend tout point de code qui ne représente pas un symbole écrit dans le jeu de caractères.
  • \w - Correspond à n'importe quel caractère de mot ; équivaut à [a-zA-Z0-9_].
  • \W - Correspond à n'importe quel caractère qui n'est pas un caractère de mot ; équivaut à [^a-zA-Z0-9_].
  • \d - Correspond à n'importe quel caractère de chiffre ; équivaut à [0-9].
  • \D - Correspond à n'importe quel caractère qui n'est pas un chiffre ; équivaut à [^0-9].
  • \N - Correspond à une correspondance partielle précédente dans la même expression régulière, N étant un chiffre ; reportez-vous à la section Références arrière ci-dessous pour obtenir des informations complémentaires sur l'utilisation de \N.
  • \s - Correspond à n'importe quel caractère d'espace blanc, y compris les espaces, les retours à la ligne, les tabulations, les retours chariot, etc.
  • \S - Correspond à n'importe quel caractère qui n'est pas un espace blanc.
  • \n - Correspond à un caractère de retour à la ligne.
  • \t - Correspond à un caractère de tabulation.
  • \r - Correspond à un caractère de retour chariot.
  • \f - Correspond à un caractère de saut de page.
  • \031 - Correspond à un caractère octal (l'octal 31 dans ce cas).
  • \x3F - Correspond à un caractère hexadécimal (l'hexadécimal 3F dans ce cas).
Chaîne en entrée : total=$12.34
Expression régulière : \$\d+(\.\d{2})?
Correspondance : $12.34

L'expression \$ correspond à un signe dollar littéral car la barre oblique inverse annule la signification spéciale. L'expression \d+ correspond au maximum de chiffres possible et doit correspondre à au moins un chiffre. L'expression (\.\d{2})? correspond à un . suivi de deux chiffres, mais ? stipule que cette partie de l'expression régulière est facultative. Vous pouvez utiliser cette expression régulière pour rechercher des valeurs en dollar qui utilisent un caractère . comme séparateur décimal. Vous devrez adapter l'expression régulière sur les locales qui utilisent un autre caractère comme séparateur décimal.

Chaîne en entrée : NEWtoken=FALSE token=TRUE checkFile=TRUE total=12.34
Expression régulière : \btoken=\w+\s\b\S*
Correspondance : token=TRUE checkFile=TRUE

L'expression régulière ne renvoie pas token=FALSE dans NEWtoken=FALSE car \b stipule que l'expression régulière ne correspond à token= que si c'est le début d'un mot. L'expression \w+ renvoie le maximum de caractères de mots possible et doit correspondre au moins à un caractère. Dans cet exemple, \w+ renvoie TRUE. L'expression \s correspond à un espace. L'expression \b\S* renvoie tous les caractères autres que des espaces blancs du début d'un mot jusqu'à ce que la fonction trouve un autre espace blanc. Dans cet exemple, \b\S* renvoie checkFile=TRUE.

Chaîne en entrée : Welcome
                   to   LabVIEW!

Expression régulière : come\n\S*\t\w*\x21
Correspondance : come
                 to   LabVIEW!


L'expression come\n renvoie les lettres littérales suivies d'un caractère de nouvelle ligne. L'expression \S* correspond au maximum possible de caractères qui ne sont pas des espaces blancs ; dans ce cas, elle renvoie le mot to. L'expression \t correspond à la tabulation qui se trouve entre to et LabVIEW!. L'expression \w* renvoie le maximum de caractères de mot possible. Dans ce cas, il s'agit du mot LabVIEW. L'expression \x21 correspond au point d'exclamation car 21 est le code hexadécimal d'un point d'exclamation.
Astuce  Pour rechercher une expression au début et à la fin d'une chaîne, utilisez ^ comme premier caractère de l'expression et $ comme dernier caractère. Par exemple, ^LabVIEW$ renvoie LabVIEW dans LabVIEW mais ni dans LabVIEW!, ni dans Hello LabVIEW. Si vous recherchez l'expression au début et à la fin de la chaîne, toute la chaîne doit correspondre à l'expression.

Caractères spéciaux pour l'entrée Chaîne de remplacement

Utilisez les caractères spéciaux suivants dans l'entrée chaîne de remplacement de la fonction Rechercher et remplacer une chaîne.

Caractère spécial Description Exemples
$n  ou  ${n} Insère la chaîne spécifiée avant ou après la correspondance partielle spécifiée. Reportez-vous à la section Références arrière ci-dessous pour obtenir des informations complémentaires sur l'utilisation de références arrière dans l'entrée chaîne de remplacement de la fonction Rechercher et remplacer une chaîne.

Utilisez ${n} si une expression régulière contient plus de 9 correspondances partielles et que vous voulez faire référence à une des correspondances partielles qui suit la neuvième. $12 n'insère que la première correspondance partielle car la fonction ne lit que le premier chiffre qui suit $. Par contre, ${12} insère la douzième correspondance partielle.
chaîne en entrée : Bienvenue LabVIEW
chaîne recherchée : (LabVIEW)
chaîne de remplacement : dans $1 !

chaîne résultante : Bienvenue dans LabVIEW !


chaîne en entrée : Welcome to the LabVIEW Help!
chaîne recherchée : We(l)(co(m)e)( )(to)( )t(he) (Lab)(VIE(W)) He(lp)(!)
chaîne de remplacement : $7${11}ful${12}

chaîne résultante : helpful!
\$n Annule l'interprétation des caractères spéciaux utilisés dans la chaîne de remplacement. chaîne en entrée : total=123 par jour
chaîne recherchée : (\d+)(par \w*)?
chaîne de remplacement : \$$1$2

chaîne résultante : total=$123 par jour

Comme dans cet exemple, utilisez \$ pour entrer le caractère littéral $.

Utilisez \\ pour indiquer une barre oblique inverse littérale.

Références arrière

Utilisez des références arrière pour faire référence à des correspondances partielles qui figurent plus tôt dans la même expression régulière. Vous pouvez utiliser des références arrière pour créer une correspondance partielle en utilisant un groupe de caractères dans une partie d'une expression et en la réutilisant dans une autre partie, plus loin dans l'expression.

Pour spécifier une référence arrière dans l'entrée expression régulière de la fonction Rechercher une expression régulière ou dans l'entrée chaîne recherchée de la fonction Rechercher et remplacer une chaîne, utilisez \1 pour faire référence à la première correspondance partielle, \2 pour faire référence à la deuxième, et ainsi de suite. Considérons par exemple l'expression régulière suivante :

(["*$])(\w+)\1\2\1

Le premier groupe de caractères contient une classe de caractères qui correspond à ", * ou $. Le deuxième groupe de caractère correspond à un caractère de mot ou plus. La première référence arrière, \1, correspond à la même correspondance partielle que le premier groupe de caractères, (["*$]). La deuxième référence arrière, \2, correspond à la même correspondance partielle que le deuxième groupe de caractères, (\w+). La troisième référence arrière, \1, est identique à la première et correspond à la même correspondance partielle que le premier groupe de caractères.

Cet exemple renverra des chaînes telles que "foo"foo", *bar*bar* et $baz$baz$, mais ne renverra pas des chaînes telles que "foo$foo" ou "foo*bar".

Références arrière dans la chaîne de remplacement

Quand vous utilisez la fonction Rechercher et remplacer une chaîne en mode Expression régulière, vous pouvez spécifier une référence arrière faisant référence à des correspondances partielles de l'entrée chaîne recherchée dans l'entrée chaîne de remplacement. Utilisez $1 pour faire référence à la première correspondance partielle, $2 pour faire référence à la deuxième, et ainsi de suite. Vous ne pouvez utiliser ces caractères spéciaux que dans l'entrée chaîne de remplacement de la fonction Rechercher et remplacer une chaîne. Utilisez ces caractères spéciaux pour insérer une chaîne que vous spécifiez avant ou après la correspondance partielle spécifiée. Prenons l'exemple suivant :

chaîne en entrée : $value "TRUE"TRUE" *NULL
chaîne recherchée : (["*$])(\w+)\1\2\1
chaîne de remplacement : $1$2value$1

chaîne résultante : $value "TRUEvalue" *NULL

Dans cet exemple, les références arrière $1 de chaîne de remplacement font référence à la première correspondance partielle de chaîne recherchée. De même, la référence arrière $2 fait référence à la deuxième correspondance partielle de chaîne recherchée.

Rubriques apparentées

Fonction Rechercher une expression régulière

Fonction Rechercher et remplacer une chaîne

Caractères spéciaux pour la fonction Rechercher une expression

Fonction Rechercher une expression

Site Web de PCRE

CET ARTICLE VOUS A-T-IL ÉTÉ UTILE ?

Pas utile