是否可以对所有未关闭的IMG标记执行正则表达式替换?如果是这样,我如何识别:
<img src="..." alt="...">
...as可能会被替换掉吗?
= <img src="..." alt="..."/>
更新:我们有数百个页面和数千个图像标签,所有这些都必须关闭。我没有纠结于RegEx --除了手动更新所有IMG标记之外,任何其他方法都足够了。
发布于 2010-03-13 00:25:38
(<img[^>]+)(?<!/)>
将匹配未正确闭合的img
标记。它要求您使用的正则表达式风格支持后视( Ruby和JavaScript不支持,但大多数其他公司都支持)。1号反向引用将包含匹配项,因此如果您搜索此正则表达式并替换为\1/>
,则应该可以继续。
如果需要考虑>
内部属性的可能性,可以使用
(<img("[^"]*"|[^>])+)(?<!/)>
这将匹配,例如,
<img src="image.gif" alt="hey, look--->">
<img src="image/image.gif">
然后离开
<img src="image/image.gif" />
独自一人。
发布于 2010-03-12 23:41:42
在HTML语言中,<img>
的结束标记“必须被省略”,所以开始标记结束了元素,你不能有一个未关闭的img。
如果您希望将HTML转换为XHTML,那么请使用真正的解析器。正则表达式对于这项工作不是一个很好的工具。
发布于 2020-05-27 19:36:01
要替换所有未关闭的IMG标签:
content = "text<img src='img.jpg'>text<img src='img.png' >text"
content = re.sub('(<img.*?)>', r'\1/>', content, count=0)
print(content)
不过,后视很酷
https://stackoverflow.com/questions/2433809
复制相似问题