我有一个“xml文件”文件,其中有一些不需要的字符
<data>
<tag>blar </tag><tagTwo> bo </tagTwo>
some extra
characters not enclosed that I want to remove
<anothertag>bbb</anothertag>
</data>
我认为下面的非贪心替换将删除<sometag></sometag>
中没有正确封装的字符
此正则表达式似乎只找到[[]]
中[[]]
所指示的位置
我做错什么了?在
编辑: 这个问题的动机已经解决了(参见注释,我在xml文件中有一个错误,导致它无法解析-它与我要删除的字符无关)。然而,我仍然很好奇regex是否可行(以及我的尝试有什么问题),因此我不删除这个问题。在
在ipython中:
^{pr2}$除非指定
re.DOTALL
标志,否则点与换行符不匹配。在应该能正常工作。(如果不是,我的python错了,而不是regex。请更正。)
我认为在定义要重复的字符类时,尽可能精确是一个很好的实践。这有助于防止catastrophic backtracking。因此,我将使用
[^<]*
而不是.*?
,它现在可以在最后一个标记之后找到离群字符。这将不再需要re.DOTALL
标志,因为[^<]
确实与换行符匹配。在相关问题 更多 >
编程相关推荐