原来在python2中,一直使用 filter(str.isdigit, str(date) 函数,从字符串中滤出数字。但到python3中,filter()返回的是个内存地址,需要用list才能得到内容。
所以去找python3中,从字符串中滤出数字的方法。
improt re 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) <class 'str'>