首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BeautifulSoup提取

BeautifulSoup提取
EN

Stack Overflow用户
提问于 2012-11-15 23:32:36
回答 1查看 410关注 0票数 3

我对BeautifulSoup有一个“问题”,尤其是re模块,这里有个问题:

代码语言:javascript
运行
复制
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

但我只想提取颜色后的数字。我有没有可能或者有义务使用下面这样的东西:

代码语言:javascript
运行
复制
match = re.search(r'color(\d+)', str(ele['class']))
if match:
    print match.group(1)

感谢您的帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-15 23:34:29

您必须重新应用正则表达式。只需将其存储在变量中并重用:

代码语言:javascript
运行
复制
colorpattern = re.compile(r'color(\d+)')

li = soup.find_all('li', {'class': colorpattern} )
for ele in li:
    print colorpattern.search(ele['class']).group(1)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13400774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档