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.


icon

Entrées/Sorties

  • cbool.png multiligne ? (F)

  • cbool.png ignorer la casse ? (F)

  • cstr.png chaîne en entrée

  • cstr.png expression régulière

  • ci32.png 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.
  • cerrcodeclst.png entrée d'erreur

  • istr.png avant la correspondance

  • istr.png toute l'expression

  • istr.png après la correspondance

  • ii32.png offset après correspondance

  • ierrcodeclst.png sortie d'erreur

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

    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ésExpression régulière
    VOLTSVOLTS
    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îneVolts$
    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 dogcat|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