python中提取网页特定内容4的正则表达式如何写

<td>
Microsoft Windows 8 null<br/>
Microsoft Windows Server 2012 null<br/>
</td>
<td>
计算机科学 <br/>
<br/>
写作文档<br/>
</td>
<td><span style="font-weight: bold;color: #014ABB;" >ID:</span>111111</td>
网页源码中有很多这种结构的代码 我只想提取如 Microsoft Windows 8 null 计算机科学 等
不想要<td></td>中有<span>...</span>中的任何内容
我写的正则是r'<td>\s*(.*|[\u4e00-\u9fa5]*)\s*</td>') 请教各位大神 这个正则该如何修改

第1个回答  2014-01-13
python有个进门解析html的包BeautifulSoup,用它要比用正则方便很多
第2个回答  2014-01-13
<td>(?!<span)\s*(.*?)<\/td>追问

span问题解决了,但中只要有的都没有提取出来 这是为什么今天上午改了好久都没有弄出来求大神解答下

追答

你说的是你的正则还是我的正则?刚才忘告诉你,我的正则需要用单行模式,也就是使用修饰符s。

追问

(?! 那这个正则是不是需要开启多行模式才能选出中的(计算机科学写作文档)内容,能否帮忙修改下。3q...

追答

多行模式和单行模式不是对应关系,名字像是历史原因。你修改的这个正则在我这打开单行模式以后就可以达到要求了。你是不是没有匹配全部啊?
打开单行模式类似下面
re.findall('^From', 'Reciting \nFrom Memory', re.S)

追问

不太懂 能否帮忙修改下。
r1=re.compile(r'(?!')
m=re.findall(r1,s)

追答

r1=re.compile(r'(?!',re.S)
但是好像中文有编码问题,我不会了

本回答被提问者采纳
相似回答