python - 如何将字符串中的数字提取到多个变量中?

标签 python python-3.x

我正在尝试根据该位置将此字符串提取为数字。这是我的代码。

string="The time is 12:30"
time = re.findall(
        "[0-9]?[0-9]?:[0-9][0-9]", string)
if time != []:
        T=time[0]
        Min=int(T[0:2])
        Sec=int(T[3:5])

我当前代码的问题是它需要灵活。例如,用户可以输入“:30”。那么我的代码根本不起作用。

我真的需要一种方法来提取“:”之前的数字(如果有的话),然后提取后面的数字。

编辑:我已经有了需要与时间函数分开的数字。我需要将该字符串转换为两个整数。

示例:2:40 是数字。我想要 Min=2 和 Sec=40。但 Min 可以是 1-60 之间的任何值,像列表一样使用字符串是行不通的

最佳答案

在冒号 (:) 字符上拆分结果字符串,而不是使用硬编码索引

>>> m, s = time[0].split(':')
>>> Min = int(m) if m != '' else 0
>>> Sec = int(s)

请注意,您无法将空字符串 '' 转换为整数,因此分钟转换会检查这种情况并将 Min 设置为 0

编辑

您还可以使用括号匹配正则表达式中的组(注意 \d 是“digit”的快捷方式):

>>> match = re.search("(\d?\d?):(\d\d)", "12:30")
>>> match.groups()
('12', '30')
>>> match = re.search("(\d?\d?):(\d\d)", ":30")
>>> match.groups()
('', '30')
>>> match = re.search("(\d?\d?):(\d\d)", "no time here... 1234")
>>> print(match)
None

关于python - 如何将字符串中的数字提取到多个变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049484/

相关文章:

string - 如何创建默认词典词典

python - xgboost: AttributeError: 'DMatrix' 对象没有属性 'handle'

python - 重复添加到列表 Python

javascript - Python 类 JavaScript 中的函数模拟

python - py2neo 缓存在烧我吗?

Python-读取文本文件的每一行并将每一行传递给变量

python - 如何在python中提取x509

python - 如何使用joblib并行写入文件?可加入队列问题

python - 导入错误: cannot import name pynestkernel

Python:在异常实例中重写 __str__