次のようにタググループの1つの名前を変更したいXMLがあります。
<string>ABC</string>
<string>unknown string</string>
する必要があります
<xyz>ABC</xyz>
<xyz>unknown string</xyz>
ABCは常に同じなので、問題ありません。ただし、「不明な文字列」は常に異なりますが、この情報を抽出する必要があるため、同じ文字列を置き換えて保持したいと思います。
これが私がこれまでに得たものです:
import re
#open the xml file for reading:
file = open('path/file','r+')
#convert to string:
data = file.read()
file.write(re.sub("<string>ABC</string>(\s+)<string>(.*)</string>","<xyz>ABC</xyz>[\1]<xyz>[\2]</xyz>",data))
print (data)
file.close()
キャプチャグループを使用しようとしましたが、正しく使用できませんでした。XMLでは、文字列が奇妙な記号に置き換えられています。さらに、2回印刷されます。XMLに変更されていないバージョンと変更されたバージョンの両方がありますが、これは望ましくありません。