re

2017-04-07 4 views
-1

の代替パターンに特殊シーケンスを使用する方法[[[]][]]で(それぞれ同時に)置きたい文字列があります。私はre.subでそれをやって考えた:re

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

をしかし、私は望ましい結果が届かない - どのように私はre.subが最初にマッチした特別なグループとしてのパターンで\1を検討するのですか?

+0

're.sub(R '(\ [| \])'、R」 [\ 1] '、' asdfas [adsfasd] ') ' – ryugie

答えて

1

あなたは同様にあなたの交換の正規表現のためのr接頭辞を使用する必要があり、そうでない\1リテラル進として解釈されます。

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

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