我遇到的问题是:我想要从字符串“1小时12分钟”中(其中两个数字是变化的)截取出1和12.

切片的方法比较简单,但不适合变化的字符串。

filter(str.isdigit,"1小时12分钟")返回的列表是:['1','1','2']  但这个结果并不是我想要的。

注,该方法在python2是直接返回列表,而在python3中返回的是filter对象,需要将其转换成list,方法是:list(filter(str.isdigit,"1小时12分钟"))

正确的方法是:

import re

re.findall(r"\d+",“1小时12分钟”)

结果是:

['1','12']

这个正是我想要的。

对re.findall(r"\d+",“1小时12分钟”)解释如下:

 re.findall 方法能够以列表的形式返回全部匹配的子串.
 r标识代表后面是正则的语句
 “d”是正则语法规则用来匹配0到9之间的数
+表示匹配多个连续的数字。
 

 

相关文章:

  • 2022-12-23
  • 2021-06-14
  • 2022-12-23
  • 2021-12-22
  • 2021-12-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-09
  • 2021-12-01
相关资源
相似解决方案