[英]Python regular expression: Getting string with certain pattern
我需要一些关于 python 中的正则表达式的帮助。 不幸的是,我有很多文件包含无效的 xml:如下所示,一些“img”标签未关闭。
<a href="a_url" class="url" target="_blank">
<img ng-src=" {{getImageUrl('homeHelp64.jpg')}}" alt="?" width="16" height="16">
Home
</a>
在 Python 中,我想做的是找到所有未关闭的“img”标签并将其替换为如下所示的关闭标签(> 之前的“/”):
<img ng-src=" {{getImageUrl('homeHelp64.jpg')}}" alt="?" width="16" height="16"/>
使用以下模式,我可以获得 img 标签的所有实例,但我只需要获取未关闭的实例。
pattern = '(img.*?)>'
将感谢您在定义模式以及如何替换“img”和最后关闭 xml 标签方面的帮助。
如果我正确理解了问题,我设法编写了所需的正则表达式。 通过链接,您可以测试表达式。 必需标志 - s
https://regex101.com/r/YctLzb/5/tests
\<(\w+)\s[^<>]+\>(?!.*\<\/\1\>)
更新:这在没有 s 标志的情况下有效,并且匹配没有 attrs 的标签: https://regex101.com/r/6nwHQP/1/tests
\<(\w+)(?:\s[^<>]+)?\>(?!(?:.|\n)*\<\/\1\>)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.