我在使用BeautifulSoup和re模块时遇到了一些“问题”。
具体来说,问题如下:
import re
from bs4 import BeautifulSoup
string = """
<div id="my_id">
<ul>
<li>something</li>
<li class="color12">something</li>
<li class="color45">something else</li>
</ul>
</div>
"""
soup = BeautifulSoup(string)
li = soup.find_all('li', {'class': re.compile('color(\d+)')} )
for ele in li:
print ele['class'] # will print colorXXXX but i would like to know how to get only this XXXX
但我只想提取颜色之后的数字,这可行吗?还是说我必须使用类似以下代码的方式:
match = re.search(r'color(\d+)', str(ele['class']))
if match:
print match.group(1)
谢谢你的帮助 :)。
r''
。 - jfs.search()
将在循环中成功。不再需要在那里测试None
。 - Martijn Pieters