C'è un modo in Python per accedere ai gruppi di fiammiferi senza creare esplicitamente un oggetto di corrispondenza (o un altro modo per abbellire l'esempio di seguito)?Gruppi di corrispondenze in Python
Ecco un esempio per chiarire la mia motivazione per la domanda:
Seguendo codice 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";
}
tradotto in 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)
sembra molto scomodo (if-else-cascade, combina creazione di oggetti).
Duplicate: http://stackoverflow.com/questions/122277/ how-do-you-translate-this-regular-expression-idiom-da-perl-into-python –
Avvertenza: Python re.match() corrisponde specificamente all'inizio del target. Quindi re.match ("I love (\ w +)", "Oh! How I love you") NON corrisponde. O vuoi usare re.search() o prefisso esplicitamente la regex con i modelli jolly appropriati per re.match (". * I love (\ w +)", ...) –
@Jim Dennis: grazie a precisare; Ho adattato l'esempio python di conseguenza – Curd