python findall()正则表达式问题
伊谢尔伦
伊谢尔伦 2017-04-18 09:12:48
[Python讨论组]

我想在一个网页里抓取金额,格式是这样的:12,123 5,431,867连续三位数字用逗号隔开。
我的表达式是:(\d{1,3}(,\d{3})*) 。。
在线测试工具里通过了,但是在python re模块的findall()却返回了tuple,于是乎看了http://blog.csdn.net/cashey1991/article/details/8875213
明白了道理,请问我该用re里的什么方法把一个网页里所有的金额抓取下来并存在一个list里?

附:如果直接用beautifulsoup的soup.findall(text=regex),会把包含这个regex的整个text返回。比如<p>asda<p>wqeqwe<p>123,432</p></p></p>,会把整个都返回了。。。。
附:我只想要一个网页里出现的金额,金额出现的格式就是如上所说,一个网页里可能出现多个金额,请问如何用regular expression抓取

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
PHP中文网

我猜你的需求是这样的
当然看见你说bs4的时候, 我知道肯定有除了比这个更好的方法...(下次讲清楚需求)

import re
re_obj1 = re.compile(r'(\d{1,3}(,\d{3})*)')
text = "12,123 5,431,867"
all_list = re_obj1.findall(text)
out_list = [f[0].replace(',', '') for f in all_list]
print(out_list)
>>['12123', '5431867']
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号