首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关闭所有HTML未关闭的IMG标记

关闭所有HTML未关闭的IMG标记
EN

Stack Overflow用户
提问于 2010-03-12 23:39:56
回答 4查看 8.9K关注 0票数 20

是否可以对所有未关闭的IMG标记执行正则表达式替换?如果是这样,我如何识别:

代码语言:javascript
复制
  <img src="..." alt="...">

...as可能会被替换掉吗?

代码语言:javascript
复制
   = <img src="..." alt="..."/>

更新:我们有数百个页面和数千个图像标签,所有这些都必须关闭。我没有纠结于RegEx --除了手动更新所有IMG标记之外,任何其他方法都足够了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-13 00:25:38

代码语言:javascript
复制
(<img[^>]+)(?<!/)>

将匹配未正确闭合的img标记。它要求您使用的正则表达式风格支持后视( Ruby和JavaScript不支持,但大多数其他公司都支持)。1号反向引用将包含匹配项,因此如果您搜索此正则表达式并替换为\1/>,则应该可以继续。

如果需要考虑>内部属性的可能性,可以使用

代码语言:javascript
复制
(<img("[^"]*"|[^>])+)(?<!/)>

这将匹配,例如,

代码语言:javascript
复制
<img src="image.gif" alt="hey, look--->">
<img src="image/image.gif">

然后离开

代码语言:javascript
复制
<img src="image/image.gif" />

独自一人。

票数 15
EN

Stack Overflow用户

发布于 2010-03-12 23:41:42

在HTML语言中,<img>的结束标记“必须被省略”,所以开始标记结束了元素,你不能有一个未关闭的img。

如果您希望将HTML转换为XHTML,那么请使用真正的解析器。正则表达式对于这项工作不是一个很好的工具。

票数 3
EN

Stack Overflow用户

发布于 2020-05-27 19:36:01

要替换所有未关闭的IMG标签:

代码语言:javascript
复制
content = "text<img src='img.jpg'>text<img src='img.png' >text"
content = re.sub('(<img.*?)>', r'\1/>', content, count=0)
print(content)

不过,后视很酷

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2433809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档