逛到一个有意思的博客在里面看到一篇关于ValueError: invalid literal for int() with base 10错误的解析,针对这个错误,博主已经给出解决办法,使用的是re.sub 方法
totalCount = '100abc'
totalCount = re.sub("\D", "", totalCount)
但是没有说明什么含义,于是去查了其他的资料,做一下记录:
在Python3.5.2 官方文档re模块中sub函数的定义是:
re.sub(pattern, repl, string, count=0, flags=0)
在字符串 string 中找到匹配正则表达式 pattern 的所有子串,用另一个字符串 repl 进行替换。如果没有找到匹配 pattern 的串,则返回未被修改的 string。Repl 既可以是字符串也可以是一个函数。
由此可分析上面使用的语句的含义:在'100abc'这个字符串中找到非数字的字符(正则表达式中'\D'表示非数字),并用""替换,然后返回的就是只剩下数字的字符串。
>>> totalCount = '100abc'
>>> totalCount = re.sub("\D", "", totalCount)
>>> print(totalCount)
100
>>> type(totalCount)
好吧,以上说明完毕,不过其实我想到的是我爬取知

本文介绍了在Python3中如何使用re.sub模块和split方法从字符串中提取数字。通过实例展示了re.sub如何替换掉非数字字符,以及split如何利用空格作为分隔符提取数字。同时讨论了这两种方法的局限性,并探讨是否存在更好的解决方案。
最低0.47元/天 解锁文章

1758

被折叠的 条评论
为什么被折叠?



