正则表达式只匹配整数不匹配小数

现在我们有形如如下字符串的数据:

联系列表:[上海浦东发展银行白金专线]主叫1次共5.48分钟,被叫0次共0.0分钟;[工商银行]主叫4次共28.36666666分钟,被叫0次共0.0分钟;[建设银行信用卡服务热线]主叫3次共9.26666666分钟,被叫0次共0.0分钟;[浦发银行信用卡热线]主叫0次共0.0分钟,被叫1次共0.58分钟

我们需要从中计算出所有银行主被叫的次数之和

为了避免python的编码问题,在避免匹配中文的情况下,我们需要从数字的特征来提取次数——次数都是整数,时长则都带有小数点。

显然,我们不能直接通过re.compile('\d+')来匹配,这样会把小数的整数部分和小数部分也匹配进来。

那么,我们可以考虑在数字首尾排除掉小数点:re.compile('[^\.]\d+[^\.]')。但这样的话,28.36666666中的6666666会被匹配到

看来,我们不仅需要排除掉小数点,还需要保证两边也都不是数字,最终:re.compile('[^\.\d](\d+)[^\.\d]'),注意加括号的意思是为了只取数字,否则左右两边我们不需要的字符也会被匹配进来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值