Rechercher une expression régulière (fonction)



Aide LabVIEW 2018


Date d'édition : Mars 2018
Numéro de référence : 371361R-0114
Afficher les infos sur le produit

Télécharger l'aide (Windows uniquement)


Aide LabVIEW 2015
Aide LabVIEW 2016
Aide LabVIEW 2017
Aide LabVIEW 2018
Aide LabVIEW 2019

Palette propriétaire : Fonctions de chaîne

Requiert : Système de développement de base

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.

Détails  

multiligne ? spécifie s'il faut ou non traiter le texte de la chaîne en entrée comme une chaîne multiligne. Ceci affecte la façon dont les caractères ^ et $ sont interprétés. Si multiligne ? est défini à FAUX (la valeur par défaut) et que vous entrez ^ au début d'une expression régulière, l'expression n'est comparée qu'au début de la chaîne de chaîne en entrée. Si vous entrez $ à la fin d'une expression régulière, l'expression n'est comparée qu'à la fin de la chaîne de chaîne en entrée. Si multiligne ? est défini à VRAI, ^ correspond au début de toutes les lignes de la chaîne en entrée, et $ correspond à la fin de toutes les lignes de la chaîne en entrée.

Remarque  Le caractère ^ recherche une expression au tout début d'une chaîne s'il est utilisé comme premier caractère d'une expression. Si vous ajoutez ^ au début d'une classe de caractères juste après un crochet ouvert, l'expression recherche tout caractère qui ne se trouve pas dans une classe de caractères donnée.
ignorer la casse ? spécifie si la recherche dans la chaîne distingue les minuscules des majuscules. Si le paramètre est FAUX (valeur par défaut), la recherche dans la chaîne est sensible à la casse.
chaîne en entrée spécifie la chaîne en entrée que la fonction recherche. La chaîne ne peut pas contenir de caractères nuls.
expression régulière est le motif que vous voulez rechercher dans chaîne en entrée. Si la fonction ne trouve pas de correspondance, toute l'expression et après la correspondance contiennent des chaînes vides, avant la correspondance contient toute la chaîne en entrée, offset après correspondance renvoie –1, et toutes les sorties de correspondances partielles renvoient des chaînes vides. Placez toutes les sous-chaînes que vous voulez rechercher entre parenthèses. La fonction renvoie toutes les expressions de sous-chaîne qu'elle trouve dans sous-chaîne 1..n. La chaîne ne peut pas contenir de caractères nuls.
offset spécifie le nombre de caractères dans la chaîne en entrée à partir duquel la fonction commence à rechercher la chaîne recherchée.
entrée d'erreur décrit les conditions d'erreur qui ont lieu avant l'exécution de ce nœud. Cette entrée fournit la fonctionnalité entrée d'erreur standard.
avant la correspondance renvoie tous les caractères qui précèdent la correspondance.
toute l'expression renvoie tous les caractères qui correspondent à l'expression entrée dans expression régulière. Toute partie de l'expression trouvée par la fonction apparaît dans les sorties de correspondances partielles.
après la correspondance renvoie tous les caractères qui suivent la correspondance.
offset après correspondance renvoie l'indice dans la chaîne en entrée du premier caractère après la dernière correspondance. Si le VI ne trouve pas de correspondance, offset après correspondance renvoie -1.
sortie d'erreur contient des informations sur l'erreur. Cette sortie fournit la fonctionnalité sortie d'erreur standard.

Détails sur Rechercher une expression régulière

Remarque  La fonction Rechercher une expression régulière ne supporte pas les caractères nuls dans les chaînes. Si les chaînes câblées à cette fonction contiennent des caractères nuls, LabVIEW renvoie une erreur, et la fonction risque de renvoyer des résultats inattendus.

Le support d'expression régulière est fourni par la bibliothèque 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 paquet de bibliothèque 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

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

Pas utile