XML テキストの処理に困っています。次のように、テキストから () を削除したい:
から<b>(apa-bhari(n))</b>
まで<b>apa-bhari(n)</b>
以下のコードを作成しました
name= re.sub('<b>\((.+)\)</b>','<b>\1</b>',name)
しかし、これは返すことしかできません
<b></b>
エスケープ シーケンスと後方参照がわかりません。解決策を教えてください。
XML テキストの処理に困っています。次のように、テキストから () を削除したい:
から<b>(apa-bhari(n))</b>
まで<b>apa-bhari(n)</b>
以下のコードを作成しました
name= re.sub('<b>\((.+)\)</b>','<b>\1</b>',name)
しかし、これは返すことしかできません
<b></b>
エスケープ シーケンスと後方参照がわかりません。解決策を教えてください。
生の文字列を使用するか、スラッシュをエスケープする必要があります。
name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>', name)
数字が続く場合、Python 文字列のバックスラッシュをエスケープする必要があります。次の式はすべて true です。
assert '\1' == '\x01'
assert len('\\1') == 2
assert '\)' == '\\)'
だから、あなたのコードは
name = re.sub('<b>\\((.+)\\)</b>','<b>\\1</b>',name)
または、正規表現文字列定義を使用します。
name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>',name)
試す:
name= re.sub('<b>\((.+)\)</b>','<b>\\1</b>',name)
または、バックスラッシュを使用しているすべての場所で判読不能なコードを\\
使用したくない場合は、手動でバックスラッシュをエスケープせずr
、文字列の前に ex:r"myString\"
を追加し"myString\\"
ます。