python匹配多个a标签中的内容

本人新手知道使用re.match可以返回自定义的群组比如#!/usr/bin/pythonimportreline="Catsaresmarterthandogs";ma... 本人新手 知道使用 re.match 可以返回自定义的群组 比如
#!/usr/bin/python
import re

line = "Cats are smarter than dogs";
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)

if matchObj:
print matchObj.group()
print matchObj.group(1)
print matchObj.group(2)

以上实例执行结果如下:
matchObj.group(1) : Cats
matchObj.group(2) : smarter

现在的问题是 我如何通过正则匹配多个a标签中的内容并返回一个列表 这样我希望可以一个一个的从列表中拿到匹配的内容结果

比如
<a>qq</a> <a>dd</a> sth

<a>ww</a>
像上面这种很形式 拿到一个 list['qq', 'dd', 'ww'] 就行 总之先谢谢。。
展开
 我来答
百度网友29d79c26e1
推荐于2017-05-16 · TA获得超过665个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:96.6万
展开全部
In [5]: re.findall(r'(?<=\<a\>).*?(?=\<\/a\>)','<a>that</a> <a>here</a>')
Out[5]: ['that', 'here']

这样的情况,用findall返回的正好是list。


正则表达式的意义:

(?<=XXX) 表示前面的内容是XXX,但结果中不包含;

.*?表示匹配0到多个任意字符,但是匹配尽量短的;

(?=YYY)表示后面的内容是YYY,但结果中不包含。

注意:XXX和YYY的长度必须是固定的。


要是处理的标签多的话,用BeautifulSoup吧,方便些。

追问
谢谢你  我刚学python  很多不太明白   你那个  In [5]  和 Out[5] 是关键字么  还是自己随便定义的列表名字?   怎么看着很像 c++ 的那个 cin>>  cout<<    可以稍微解释下么   谢喵..
追答
不好意识,懒了一下直接复制过来了,我应该把那两个东西 去掉的。那是ipython命令窗口的输入和输出标志,本身没有意义的。自然是冒号之后的才是代码。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式