Rechercher une expression régulière
- Mise à jour2025-07-30
- Temps de lecture : 5 minute(s)
Recherche une expression régulière dans la chaîne en entrée, en partant de l'offset que vous entrez. Si la fonction trouve une correspondance, elle coupe la chaîne en trois sous-chaînes et les correspondances partielles, quel que soit leur nombre. Redimensionnez la fonction pour voir les correspondances partielles trouvées dans la chaîne.

Entrées/Sorties
multiligne ? (F)
—
ignorer la casse ? (F)
—
chaîne en entrée
—
expression régulière
—
offset (0)
—
offset specifies the number of characters into chaîne en entrée at which the function starts searching for chaîne recherchée.
entrée d'erreur
—
avant la correspondance
—
toute l'expression
—
après la correspondance
—
offset après correspondance
—
sortie d'erreur
—
|
Le support d'expression régulière est fourni par le paquet de bibliothèques PCRE. Reportez-vous au répertoire <National Instruments>\_Legal Information pour en savoir plus sur la licence utilisée pour la redistribution du paquet de bibliothèques PCRE.
Reportez-vous au site Web PCRE, à www.pcre.org, pour obtenir des informations complémentaires sur les expressions régulières compatibles avec Perl.
La fonction Rechercher une expression régulière vous offre davantage d'options que la fonction Rechercher une expression pour la recherche de chaînes, mais elle est plus lente.
Utilisez les expressions régulières avec cette fonction pour raffiner la recherche.
Comment éviter un débordement de pile
Le traitement de certaines expressions régulières qui utilisent des expressions regroupées répétées (comme (.|\s)* or (a*)*) nécessite des ressources importantes lorsqu'il s'applique à de longues chaînes en entrée. Dans certains cas, un débordement de pile peut se produire sur de longues chaînes en entrée. Certaines expressions régulières risquent d'effectuer une récursion répétée pendant la recherche d'une longue chaîne, ce qui risque de faire déborder la pile. Par exemple, l'expression régulière (.|\n)*A et une longue chaîne en entrée peuvent provoquer l'arrêt inattendu de LabVIEW. Pour éviter la récursion, vous pouvez remplacer l'expression régulière (.|\n)*A par (?s).*A. La notation (?s) indique qu'un point correspond à de nouvelles lignes. Vous pouvez aussi remplacer l'expression par [^A]*A.
Regroupement de patterns pour les correspondances partielles
Vous pouvez capturer des correspondances partielles en plaçant entre parenthèses ( ) la partie de l'expression régulière que la fonction doit renvoyer comme correspondance partielle. Par exemple, l'expression régulière (el.)..(L..) renvoie deux correspondances partielles dans la chaîne Hello LabVIEW ! en entrée : ell et Lab. Chaque correspondance partielle correspond à un groupe de caractères dans l'ordre qu'ils ont dans l'expression régulière. Dans cet exemple, correspondance partielle 1 est ell, et correspondance partielle 2 est Lab.
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. Par exemple, l'expression régulière (.(el.).).(L..) renvoie trois correspondances partielles dans la chaîne Hello LabVIEW ! en entrée : Hello, ell et Lab. Dans cet exemple, correspondance partielle 1 est Hello car l'expression régulière recherche une correspondance pour le groupe de caractères externe avant d'en rechercher une pour le groupe interne.
Exemples d'expressions régulières
Le tableau suivant montre des exemples d'expressions régulières que vous pouvez utiliser avec la fonction Rechercher une expression régulière.
| Caractères recherchés | Expression régulière |
|---|---|
| VOLTS | VOLTS |
| Un signe plus ou un signe moins | [+-] |
| Une séquence d'un ou plusieurs chiffres | [0-9]+ |
| Zéro ou plusieurs espaces | \s* ou * (un caractère espace suivi d'un astérisque) |
| Un ou plusieurs espaces, tabulations, retours à la ligne ou retours chariot | [\t \r \n \s]+ |
| Un ou plusieurs caractères autres que des chiffres | [^0-9]+ |
| Le mot Niveau uniquement s'il apparaît au début de la chaîne | ^Niveau |
| Le mot Volts uniquement s'il apparaît à la fin de la chaîne | Volts$ |
| La plus longue chaîne entre parenthèses | \(.*\) |
| La première chaîne entre parenthèses ne contenant pas de parenthèses à l'intérieur des parenthèses | \([^()]*\) |
| Crochet gauche | \[ |
| Crochet droit | \] |
| cat, cag, cot, cog, dat, dag, dot et dog | [cd][ao][tg] |
| cat ou dog | cat|dog |
| dog, cat dog, cat cat dog,cat cat cat dog, et ainsi de suite | ((cat )*dog) |
| Une ou plusieurs lettres a suivies d'un espace et du même nombre de lettres a, comme par exemple : a a, aa aa, aaa aaa et ainsi de suite | (a+) \1 |
multiligne ? (F)
—
chaîne en entrée
—
offset (0)
—
entrée d'erreur
—
avant la correspondance
—
offset après correspondance
—
sortie d'erreur
—