不要な文字が含まれる「xml ファイル」ファイルがあります
<data>
<tag>blar </tag><tagTwo> bo </tagTwo>
some extra
characters not enclosed that I want to remove
<anothertag>bbb</anothertag>
</data>
次の貪欲ではない置換により、適切に囲まれていない文字が削除されると思いました<sometag></sometag>
re.sub("</([a-zA-Z]+)>.*?<","</\\1><",text)
^ ^ ^ ^ text is the xml txt.
remember tag, | | put tag back without and reopen next tag
read everything until the next '<' (non-gready)
この正規表現は、で示されている位置のみを見つけるよう[[]]
です</tag>[[]]<tagTwo>
何が間違っていますか?
編集: この質問の動機は解決されました(コメントを参照してください。xmlファイルに迷子の & があり、解析されない原因となっていました-削除したい文字とは何の関係もありませんでした)。ただし、正規表現が可能かどうか(および私の試みの何が問題だったのか)についてはまだ興味があるので、質問を削除しません。