2017-04-07 5 views
-1

eine spezielle Sequenz in Ersatzmuster verwenden habe ich einen String, in denen Ich mag würde jede [ von [[] und ] von []] ersetzen (zugleich). Ich dachte darüber mit re.sub tun:Wie in re.sub

re.sub(r'(\[|\])', '[\1]', 'asdfas[adsfasd]') 
Out: 'asdfas[\x01]adsfasd[\x01]' 

Aber ich bin nicht das gewünschte Ergebnis zu erzielen - wie mache ich die re.sub betrachten \1 im Muster als erste abgestimmte spezielle Gruppe?

+0

're.sub (r '(\ [| \])', r‘ [\ 1] ',' asdfas [adsfasd] ') ' – ryugie

Antwort

1

Sie sollten auch r Präfix für Ihre Ersetzen Regex verwenden, sonst \1 wird als Hex interpretiert werden wörtliche:

In [125]: re.sub(r'(\[|\])', r'[\1]', 'asdfas[adsfasd]') 

Out[125]: 'asdfas[[]adsfasd[]]'