python - 如何用正则表达式匹配标签里面的a标签

查看:194
本文介绍了python - 如何用正则表达式匹配标签里面的a标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

这里有这样一个问题,我们会遇到这样的情况:

<td>(1)(<a href="(2)">(3)</ a>)(4)</ td>

这里的2,3位置决定的a标签可能存在,而1,4的位置可能由内容也可能没有内容,能不能用一个正则表达式让不管a标签存在与否都匹配出1,4位置的内容呢

比如
<td><a href=""></a>this is not empty</td>
<td>this is not empty<a href=""></a></td>
<td>this is not empty><a href=""></a>this is not empty</td>

这里有一个例子

<td>(.+?)(<a href="(.+?)>(.+?)</a>)?(.+?)</td>

但是这显然是不能满足我们的需求的,能找到正确的方案吗?

解决方案

哈哈,这要是php就简单了。直接过滤标签完事了。然而这PY
看你的意思是要从表格里面,提取文字。。
那么可以
<td>(.*?)(<.+?>)*(.*?)</td>
也可以分步,先 <td>(.+?)</td> 把内容取出来。然后把 <.+?> 全替换空。

或者。。用回你的正则
<td>(.+?)(<a href="(.*?)>(.*?)</a>)?(.+?)</td>

+代表匹配至少1次,而*代表0次或者更多

这篇关于python - 如何用正则表达式匹配标签里面的a标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆