2016-09-03 1 views
1

Apologies für die einfache Frage, aber Im kämpfen mit diesem:Mit re.sub Einfanggruppen

str = 'EURGBP' 

print (re.sub(r'\EUR(GBP)', r'\1', str)) 

kehrt

GBP 

aber

print (re.sub(r'\(EUR)(GBP)', r'\2,\1', str)) 

gibt mir error: unbalanced parenthesis at position 5

Ich versuche es einfach o erfassen beiden Elemente in Klammern eingeschlossen und sie in umgekehrter Reihenfolge wie folgt aus Re ausdrucken:

GBPEUR 

Kann jemand bitte zeigen Sie mir, was ich falsch mache?

Antwort

1

Sie entgehen nicht die paren als \( bedeutet, dass Sie buchstäblich für eine ( im String suchen, so dass die Schließung ) keine passende Öffnung ( hat, entweicht die E gearbeitet, wie Sie für die wörtliche E suchen, auch nur r'\2\1' verwenden es sei denn, Sie wollen sie auch getrennt durch ein Komma:

In [1]: import re 

In [2]: s = 'EURGBP' 

In [3]: re.sub(r'(EUR)(GBP)', r'\2\1', s) 
Out[3]: 'GBPEUR'