python在reqular表达式中获取浮点数

2024-06-25 07:27:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下格式的可能性:

1,34$
1.34$
114$
0,34$
0.34$

我只想知道号码。在

我用的是普通快车

^{pr2}$

但是当我在1,34$中测试它时,我得到了两个结果,分别是1和{}

我只需要使用正则表达式

很明显,我不是在处理点和逗号的情况,因为我不知道怎么做

我的问题是谁能得到整数

我的第二个问题是我怎么能不在乎它是逗号还是点。在

谢谢


Tags: 格式情况整数可能性号码逗号快车pr2
1条回答
网友
1楼 · 发布于 2024-06-25 07:27:15

正确的正则表达式是:

(\d+(?:[.,]\d*)?)

这意味着:一个或多个数字后接一个点或一个逗号,后跟零个或多个数字。在

捕获组是整个表达式(括号之间的所有内容)。注意,(?...)是一个捕获组,它只是一个表达式分组,因此{}适用于该组中的所有内容。在

您得到两个结果的原因是您使用了两个捕获组。在

如果你想把结果转换成一个数字,你就必须把可能的逗号替换成一个点,然后转换成一个浮点数。假设捕获的文本位于text

^{pr2}$

例如:

import re
text = '1,32$'
match = re.match(r'(\d+(?:[.,]\d*)?)',text)
float(match.group(1).replace(',','.'))
>>> 1.320

相关问题 更多 >