Existe-t-il un moyen en Python d'accéder à des groupes de correspondance sans créer explicitement un objet de correspondance (ou un autre moyen d'embellir l'exemple ci-dessous)?Groupes de correspondance en Python
Voici un exemple pour clarifier ma motivation pour la question:
code suivant perl
if ($statement =~ /I love (\w+)/) {
print "He loves $1\n";
}
elsif ($statement =~ /Ich liebe (\w+)/) {
print "Er liebt $1\n";
}
elsif ($statement =~ /Je t\'aime (\w+)/) {
print "Il aime $1\n";
}
traduit en Python
m = re.search("I love (\w+)", statement)
if m:
print "He loves",m.group(1)
else:
m = re.search("Ich liebe (\w+)", statement)
if m:
print "Er liebt",m.group(1)
else:
m = re.search("Je t'aime (\w+)", statement)
if m:
print "Il aime",m.group(1)
semble très maladroit (if-else en cascade, correspondre à la création d'objet).
double: http://stackoverflow.com/questions/122277/ how-do-you-translate-this-expression-régulière idiome-de-perl-en-python –
Avertissement: Python re.match() correspond spécifiquement au début de la cible. Ainsi re.match ("J'aime (\ w +)", "Oh, comme je t'aime") ne correspondrait pas. Vous voulez soit utiliser re.search() ou préfixer explicitement l'expression régulière avec des motifs génériques appropriés pour re.match (". * J'aime (\ w +)", ...) –
@Jim Dennis: merci de le signaler; J'ai adapté l'exemple de python en conséquence – Curd