Regsub

From Base de connaissances eggdrops & TCL
Jump to: navigation, search

regsub - Effectue des substitutions de chaînes basées sur l'identification d'expressions rationnelles

Syntaxe

regsub ?switches? exp string subSpec varName

Description

Cette commande cherche une correspondance de l'expression exp dans string, et elle copie string dans la variable dont le nom est donné par varName. (la correspondance avec les expressions rationnelles est décrite dans la page de référence de re_syntaxregexp commencent avec -, ils sont alors traités comme des switchs. Les switchs suivants sont actuellement reconnus:

  • -all Toutes les séquences dans "string" qui interceptent "exp" sont trouvées et la substitution est faite sur chacune de ces séquences. Sans ce switch, seule la première séquence est substituée. Si -all est indiqué, alors les séquences &' et \n sont traitées pour chaque substitution en utilisation l'information de l'interception adéquate.
  • -expanded Autorise l'utilisation d'expressions rationnelles étendues, où le blanc et les commentaires sont ignorés. Ceci est la même chose que d'indiquer l'option embarquée (?x). (voir METASYNTAXE, dans la page re_syntax)
  • -line Autorise la sensibilité au retour-chariot (newline). Par défaut newline est un caractère ordinaire sans signification particulière. Avec ce switch, les expressions entre crochets '[[
  • -linestop Change le comportement des expressions entre crochets '[[
  • -lineanchor Change le comportement des expression '^' et '$' (les ancres) de telle sorte qu'ils interceptent respectivement le début et la fin d'une ligne. Ceci est le même que d'indiquer l'option embarquée (?w). (voir METASYNTAXE, dans la page re_syntax)


  • -- Marque la fin des switches. L'argument suivant cette fin sera traité comme étant l'expresssion "exp", même s'il commence par -.


regexp pour des précisions sur l'interprétation des expressions rationnelles.

Exemples

Supprimer les caractères spéciaux

proc filt {data} {
    regsub -all -- \\\\ $data \\\\\\\\ data
    regsub -all -- \\\[ $data \\\\\[ data
    regsub -all -- \\\] $data \\\\\] data
    regsub -all -- \\\} $data \\\\\} data
    regsub -all -- \\\{ $data \\\\\{ data
    regsub -all -- \\\" $data \\\\\" data
    regsub -all -- \\\' $data \\\\\' data
    return $data
}

Voir également

regexp, re_syntax, Documentation Expressions régulières pour tcl