Vous êtes très proche:
set stringToTest "AXIOMB"
set match [regexp {^A([C-Z]*)B$} $stringToTest -> substring]
if {$match} {
puts "The middle was $substring"
}
(Le ->
est en fait un nom de variable inhabituel mais ici j'utilise ce symbole bec Utilisez-le plutôt que d'utiliser l'équivalent someRandomDummyVariable
. :-))
Si vous cherchez à obtenir la chaîne à tester à partir de la ligne de commande ou la console, voici comment:
arguments de ligne de commande (sans le nom de l'interpréteur Tcl ou le script) sont présenté sous forme de liste dans la variable de liste globale argv
. Le premier est donc [lindex $::argv 0]
.
Une ligne peut être lue à partir de la console via la commande gets
.
set line [gets stdin]; # you can use other channel names too, of course
Notez que, contrairement à C, gets
en Tcl est fortement défendue contre les dépassements de tampon et la (presque) pleine puissance de scanf()
est à peu près équivalente à scan [gets stdin] ...
(sauf pour certains formats exclus pour des raisons de sécurité).
Bienvenue dans StackOverflow! Une question: qu'en est-il de 'ARAB'? Est-ce un mot légal? –