Vous recherchez simplement une faveur pour écrire une expression régulière correspondant à l'ensemble de chaînes suivant. Je veux écrire une expression qui correspond à toutes les chaînes suivantes TCLBesoin d'aide pour écrire une expression rationnelle - TCL
i) (XYZ XZZ XVZ XWZ)
Clue: chaîne de départ est fin de chaîne X et Z est le même pour toutes les paires. Seule la chaîne moyenne est différente YZV W.
Mon essai: [regexp {^X([Y|Z|V|W]*)Z$}]
Je veux écrire un autre regexp qui attrape/correspond uniquement à la chaîne suivante où vient
ii) (XYZ)
Mon essai: [regexp {^X([Y]*)Z$}]
ou simplement regexp {^XYZ$}
Je veux juste m'assurer que c'est une approche correcte. Est-il un autre moyen disponible pour optimiser l'expression rationnelle :)
i) 1ère question Testé
set to_Match_Str "XYZ XZZ XVZ XWZ"
foreach {wholeStr to_Match_Str} [regexp -all -inline {X[YZVW]Z} $to_Match_Str] {
puts "MATCH $to_Match_Str in the list"
}
Il imprime uniquement XZZ XWZ de la liste. Son omission XYZ & XVZ Lorsque j'inclue la parenthèse [regexp -all -inline {X ([YZVW]) Z} $ to_Match_Str]. Il imprime tous les caractères du milieu correctement YZVW
bien, il ne fait pas plus autorité qu'une réponse d'un membre de l'équipe de base Tcl. À votre santé. :) –
Le seul petit problème avec cette question était de savoir exactement ce qui a été demandé. (Comme d'habitude, ceux qui sont habiles à poser des questions n'ont généralement pas besoin de demander en premier lieu donc je préfère essayer d'aider les gens à poser de meilleures questions :-)) –
@Donal 1ère Question Testée set to_Match_Str " XYZ XZZ XVZ XWZ » {foreach wholeStr to_Match_Str} [regexp -Tous inline {X [YZVW] Z} to_Match_Str $] { met "MATCH $ to_Match_Str dans la liste" } Il imprime uniquement XZZ XWZ de la liste . Il laisse XYZ & XVZ Quand j'inclus la parenthèse [regexp -all -inline {X ([YZVW]) Z} $ to_Match_Str]. Il imprime correctement tous les caractères du milieu Y Z V W – user330727