此问题在此处已有答案:
Extract float/double value(5个答案)
八年前就关门了。
我有一些类似于Current Level: 13.4 db.
的字符串,我想只提取浮点数。我说浮点数而不是小数,因为有时它是整数。RegEx能做到这一点吗?或者有更好的方法吗?
此问题在此处已有答案:
Extract float/double value(5个答案)
八年前就关门了。
我有一些类似于Current Level: 13.4 db.
的字符串,我想只提取浮点数。我说浮点数而不是小数,因为有时它是整数。RegEx能做到这一点吗?或者有更好的方法吗?
7条答案
按热度按时间xbp102n01#
如果你的浮点数总是用十进制表示,比如
可能就足够了。
更可靠的版本是:
如果您想要验证使用者输入,您也可以直接进入浮点数来检查浮点数:
zysjyyx42#
你可能会想试试这样的方法,它涵盖了所有的基础,包括不依赖于数字后的空格:
为了方便复制粘贴:
a0zr77ik3#
Python docs提供了一个答案,其中包括+/-、和指数符号。
此正则表达式不支持使用逗号作为整数和小数部分(3,14159)之间的分隔符的国际格式。在这种情况下,请将上述浮点正则表达式中的所有
\.
替换为[.,]
。z2acfund4#
如上所述,效果真的很好!不过有一个建议:
也会传回负的int值(例如这个字串结尾的-3)
kgsdhlau5#
可以使用下面的正则表达式从字符串中获取整数和浮点值:
谢谢雷克斯
kqhtkvqz6#
我想你会在我下面的回答中发现有趣的东西,我对以前的一个类似的问题做了回答:
https://stackoverflow.com/q/5929469/551449
在这个答案中,我提出了一个模式,允许正则表达式捕捉任何类型的数字,因为我没有其他东西可以添加到它,我认为它是相当完整的
wmvff8tz7#
另一种可能更容易理解的方法是简单的类型转换。我添加了一个替换函数来覆盖人们可能输入欧洲小数的示例:
然而,这也有缺点。如果有人输入“1,000”,这将被转换为1。而且,它假设人们将在单词之间输入空格。这不是其他语言的情况,如中文。