正则表达式将Python中的<div> <img ...> </ div>转换为<div> <img ... /> </ div>

大卫

我试图完成在其他HTML中间的图片标签的关闭,因为当我使用JS创建图片标签并将其发送给自己时,它没有正确关闭。我为此使用Python。

给定此字符串:

<div><img src="/images/someImage.png" alt="Some Image"></div>

我怎样才能得到

<div><img src="/images/someImage.png" alt="Some Image" /></div>

到目前为止,这是我想出的:

re.sub("<img(.*)(?<!/)>", "<img\\1 />", x)

仅使用图像,它就可以工作,但是一旦添加div包围它,它就会把它放在错误的位置:

<div><img src="http://sh.local/images/tripAlbums/2014/thumbs/Background%20Default.jpeg"></div />

您会注意到,结尾的DIV在image标签上有我想要的。

请注意,尽管我只显示一张图像,但可能会显示更多图像,因此它应该与global一起使用re.sub

谢谢。

nu11p01n73R

使用非贪婪 .*?

>>> re.sub("<img(.*?)(?<!/)>", "<img\\1 />", str)
'<div><img src="/images/someImage.png" alt="Some Image" /></div>'

或者

您也可以尝试

>>> re.sub("<img([^>]*)(?<!/)>", "<img\\1 />", str)
'<div><img src="/images/someImage.png" alt="Some Image"/></div>'
  • [^>]*否定的角色类。匹配> 多次



清洁方法

将会使用更干净,更漂亮的方法 BeautifulSoup

>>> import bs4
>>> str='<div><img src="/images/someImage.png" alt="Some Image"></div>'
>>> soup = bs4.BeautifulSoup(str)
>>> soup.prettify()
u'<div>\n <img alt="Some Image" src="/images/someImage.png"/>\n</div>'

注意Regex不是解析html的正确工具。建议使用HTML解析器,例如BeautifulSoup

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将 div 置于 img 上

来自分类Dev

正则表达式以匹配div中img src的内容

来自分类Dev

正则表达式将<div>转换为<br>

来自分类Dev

水平div img对齐

来自分类Dev

用 <div> 替换 <img>

来自分类Dev

将img中的img在div中垂直居中

来自分类Dev

使用img元素在Div上进行Div

来自分类Dev

将div环绕img宽度并保持div高100%

来自分类Dev

DIV调节-检查DIV中是否存在IMG

来自分类Dev

如何将<a> <img> </a>标签与div对齐

来自分类Dev

将<img>从<ul>复制到<div>

来自分类Dev

将7个<img>环绕div

来自分类Dev

Bootstrap将img放到div的底部

来自分类Dev

问题-ExtJS中textcontent div中的img

来自分类Dev

在div中垂直对齐img?

来自分类Dev

计算div标签中img标签的数量

来自分类Dev

删除DIV中图像的CSS IMG样式

来自分类Dev

在div中垂直对齐img?

来自分类Dev

img上的jQuery显示div

来自分类Dev

img仅隐藏div的背景?

来自分类Dev

用jQuery的div后的Img

来自分类Dev

如何将二进制数据转换为图像并显示在Div标签或img标签中?

来自分类Dev

如何将带有img标签的div转换为图像

来自分类Dev

将<img>元素包装在<div>中,但允许使用<a>标签

来自分类Dev

使用jQuery将img包装在div中

来自分类Dev

单击按钮将img加载到div中-Wordpress

来自分类Dev

如何将img放入div圈子中?

来自分类Dev

CSS:将IMG标签放置在div中且溢出

来自分类Dev

将<img>元素包装在<div>中,但允许使用<a>标签