In Perl ist es mir möglich, eine Substitution zu machen und eine Gruppenübereinstimmung gleichzeitig zu erfassen. z.B.Get Group Match in re in Python
my $string = "abcdef123";
$string =~ s/(\d+)//;
my $groupMatched = $1; # $groupMatched is 123
In Python kann ich die Substitution mit re Funktion wie folgt tun. Ich finde jedoch keine Möglichkeit, die \ d + -Gruppenübereinstimmung zu erfassen, ohne eine andere Funktion re.match aufzurufen und eine zusätzliche Operation auszuführen.
Weiß jemand, wie ich den "\ d +" übereinstimmenden Wert als eine separate Variable von der gleichen re-Operation erfassen kann? Ich habe den folgenden Befehl ausprobiert und es funktioniert nicht.
print r'\1'
Ich bin mir nicht sicher, ob dies (zumindest gleichzeitig) möglich ist, weil das Rückgabeobjekt von 're' eine Zeichenkette ist. Wenn Sie so etwas haben, 'rx_obj = re.search ('123 $', another_string)', erhalten Sie ein RE-Objekt, das von 'rx_obj.group()' erfasst werden kann. – maxie
Ich nehme an, Sie könnten Recht haben, dass es nicht möglich ist, beides gleichzeitig zu tun. Die anderen Wege scheinen ein bisschen hackisch oder sind im Grunde zwei getrennte Schritte. – KT8
Beachten Sie, dass Sie in Perl immer überprüfen sollten, ob Ihre Übereinstimmung erfolgreich war, bevor Sie die speziellen nummerierten Variablen verwenden: 'if ($ str = ~ s/(\ d +) //) {$ x = $ 1; } ' – stevieb