2017-08-09 10 views
-1

私は以下のような交換を行うために正規表現を実行するためのpythonを使用しようとしている:b = <\1>その後グループコンテンツを変更しないでPythonで正規表現を書く方法は?

a = "%I'm a sentence.|" 
re.sub(r"%(.*?)\|", "<\1>", a) 

、私は<I'm a sentences.>

どのように私はこれを達成することが出来るのですが、結果を取得したいですか?私はI'm a sentenceをグループ化しようとしましたが、何か間違っていると感じました。その結果、グループ1は維持されません。 アイデアがあれば教えてください。事前にどうもありがとうございました!

+1

グループの使用をキャプチャする: 'R "<\1>は、"' –

+0

あなたは – Penny

答えて

5

代替文字列を使用すると、\1はバックリファレンスではなく8進文字コードとして解釈されます。

結果をbに割り当てます。

b = re.sub(r"%(.*?)\|", r"<\1>", a) 

DEMO

+0

おかげで、@barmarを@Rawingありがとうございました!これは多くの助けになりました! – Penny

3

生の文字列リテラルを使用して、正規表現でいつものように\g<1>

a = "%I'm a sentence.|" 
a = re.sub(r"%(.*?)\|", "<\g<1>>", a) 
# <I'm a sentence.> 
関連する問題