regex 正则表达式匹配的值转换为浮点数/整数[duplicate]

cu6pst1q  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(96)

此问题在此处已有答案

python: extract float from a python list of string( AUD 31.99)(4个答案)
12小时前关门了。
此帖子在11小时前编辑并提交审查。
请考虑以下示例:

import re
string = "1-3-a"
a, b, c = re.match("(\d+)-(\d+)-(\w+)", string).groups()
print(a + b)

这将打印:'13'。然而,我想使用这些值作为数字(整数或浮点数),同时保持变量c作为字符串。当然,我可以做a = int(a)等,但我认为必须有一个更方便的方式来做到这一点(特别是当你匹配更多的变量)。
不幸的是,我找不到任何关于这一点,最初我认为正则表达式将处理这一自动,因为我说,它必须是一个数字。
编辑:我认为这与假设的重复问题不同,因为我试图将字符串的多个部分匹配到多个变量中。

8yoxcaq7

8yoxcaq71#

Regex本身不会这样做,这根本不是它的工作。实现它的一种方法(如果你想要更多的“单行”解决方案)是使用map函数将int()函数应用于groups元组中的每个元素。

import re
string = "1-3"
a, b = map(int, re.match("(\d+)-(\d+)", string).groups())
print(a + b)

相关问题