regexp

 

regexp - Compare une expression rationnelle à une chaîne

SYNTAXE

 regexp ?switches? exp string ?matchVar? ?subMatchVar subMatchVar ...?

DESCRIPTION

Détermine si l'expression rationnelle exp correspond à tout ou partie de string et retourne 1 si vrai, 0 si faux, à moins que -inline soit spécifié (voir ci-dessous). (la correspondance des expressions rationnelles est décrite dans la page de référence de re_syntax.)

Si des arguments supplémentaires sont spécifiés après string alors ils sont traités comme les noms des variables dans lesquelles renvoyer l'information au sujet de la ou les parties de string correspondant à exp. MatchVar sera fixé à la partie de string correspondant à exp La première subMatchVar contiendra les caractères de string qui correspondent à la sous expression entre parenthèses la plus à gauche dans exp, la subMatchVar suivante contiendra les caractères qui correspondent à la sous expression entre parenthèses suivante à droite dans exp, et ainsi de suite.

Si les arguments initiaux à regexp commencent avec - alors ils sont traités comme des commutateurs. Les commutateurs suivants sont couramment supportés:

-about Au lieu de tenter de correspondre à une expression rationnelle, retourne une liste contenant l'information concernant l'expression rationnelle Le premier élément de la liste est un compte des sous expressions Le second élément est une liste de noms de propriété qui décrivent plusieurs attributs de l'expression rationnelle. Ce switch est conçu dans un but de debugging.

-expanded Active l'usage de la syntaxe étendue des expressions rationnelles où l'espace et les commentaires sont ignorés. Identique à la spécification de l'option (?x) (voir METASYNTAXE, ci-dessous).

-indices Change ce qui est stocké dans les subMatchVars Au lieu de stocker les caractères correspondants de string, chaque variable contiendra une liste de deux chaînes décimales donnant les indices dans string des premiers et derniers caractères dans l'intervalle correspondant des caractères.

-line Active la correspondance sensible au saut de ligne Par défaut, le saut de ligne est un caractère ordinaire sans signification spéciale Avec ce flag, l' expression crochets `[^' et `.' ne correspond jamais à newline, `^' correspond à une chaîne vide après toute newline en plus de sa fonction normale, et `$' correspond une chaîne vide avant toute newline en en plus de sa fonction normale Ce flag est équivalent à la spécification à la fois de -linestop et -lineanchor, ou de l'option (?n) (voir METASYNTAXE, ci-dessous).

-linestop Change le comportement de l'expression crochets `[^' et `.' de façon à ce qu'elles s’arrêtent aux saut de lignes Ceci est identique à la spécification de l'option (?p) (voir METASYNTAXE, ci-dessous).

-lineanchor Change le comportement de `^' et `$' (les "ancres") de façon à ce qu'ils correspondent au début et à la fin d'une ligne respectivement Ceci est identique à la spécification de l'option (?w) (voir METASYNTAXE, ci-dessous).

-nocase Cause l'interprétation des caractères majuscules de string comme minuscules pendant le traitement des correspondances.

-all Teste la correspondance de l'expression rationnelle le plus grand nombre de fois possible dans la chaîne, retournant le nombre total de correspondances trouvées Si spécifié avec des variables de correspondance, ne contiendront l'information que pour la dernière correspondance.

-inline Provoque le renvoi, comme liste, des données qui auraient été autrement placées dans des variables de correspondance Quand inline est utilisée, les variables de correspondance ne peuvent pas être spécifiées Si utilisé avec -all, la liste sera concaténée à chaque itération, de ce fait une liste plate est toujours renvoyée Pour chaque itération, la commande ajoutera les correspondances supplémentaires aux données, plus un élément pour chaque sous expression dans l'expression rationnelle. Exemples:

  regexp -inline -- {\w(\w)} " inlined "

  => {in n}

  regexp -all -inline -- {\w(\w)} " inlined "

  => {in n li i ne e}

-start index Spécifie un index de caractère dans une chaîne pour commencer la correspondance à une expression rationnelle A l'utilisation de ce switch, `^' ne correspond plus au début de la ligne, et \A correspond toujours au début de la chaîne à index Si -indices est spécifié, les indices seront indexés en partant du début de la chaîne d'entrée. index sera contraint au limites de la chaîne d'entrée.

-- Marque la fin des commutateurs L'argument suivant ceci sera traité comme exp même s'il commence avec un -.

S'il y a plus de subMatchVar que de sous expressions entre parenthèses dans exp, ou si une sous expression particulière dans exp ne correspond pas à la chaîne (ex. parce qu’il était dans une partie de l'expression qui n'a pas été trouvée), alors la subMatchVar correspondante sera fixée à "-1-1" si -indices a été spécifié ou à une chaîne vide autrement

VOIR ÉGALEMENT

re_syntax


Traduit par Michel Salvagniac 2002-2003

Copyright © 2003 - Le Wiki Tcl/Tk Francophone.


Catégorie Manuel Tcl/Tk