Difference between revisions of "Regsub"

From Base de connaissances eggdrops & TCL
Jump to: navigation, search
(Voir également)
Line 10: Line 10:
 
* '''-linestop''' Change le comportement des 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)
 
* '''-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 -.
 
* '''--''' 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.
 
[[regexp]] pour des précisions sur l'interprétation des expressions rationnelles.
Line 28: Line 25:
 
     return $data
 
     return $data
 
}</source>
 
}</source>
 
+
===Supprimer les caractères identiques===
 +
Cet exemple est surtout utile pour voir l'utilisation des références arrières:
 +
<source lang=tcl>set test aabbbccdddddeeeeee
 +
regsub -all -- {(.)\1+} $test {\1} clean
 +
puts $clean
 +
# abcde</source>
 
==Voir également==
 
==Voir également==
 
[[regexp]], [[re_syntax]], [[Media:Regexp.pdf|Documentation Expressions régulières pour tcl]]
 
[[regexp]], [[re_syntax]], [[Media:Regexp.pdf|Documentation Expressions régulières pour tcl]]
 
* http://wfr.tcl.tk/107
 
* http://wfr.tcl.tk/107

Revision as of 11:03, 3 November 2020

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
}

Supprimer les caractères identiques

Cet exemple est surtout utile pour voir l'utilisation des références arrières:

set test aabbbccdddddeeeeee
regsub -all -- {(.)\1+} $test {\1} clean
puts $clean
# abcde

Voir également

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