gpt4 book ai didi

c# - 正则表达式几乎完美的数值

转载 作者:IT王子 更新时间:2023-10-29 04:47:10 28 4
gpt4 key购买 nike

我有这个 REGEX 几乎完美...它似乎可以处理所有除了以负号和小数开头的数字。所以如果我输入:

-.2

我得到一个错误 -

这是我的正则表达式——我测试过的其他一切都完美无缺...

^(\+|-)?[0-9]{1,11}?(?:\.[0-9]{1,4})?$

这允许:

  • 最多 11 位数字(990 亿)
  • 正数或负数
  • 最多 4 位小数(可选)
  • 小数点前的前导 0 是可选的 - 仅适用于正数

这些都有效:

-0.2345
-10
12
.125
0.1245
5.555
25000000000 (aka 25 Billion)
25000000000.25

这些不起作用:

-.2
-.421

最佳答案

正则表达式可能很昂贵...为什么不使用 Decimal.Parse 或 Float.parse?

您当前的实现永远不会使用替代数字样式,例如 European where 。 (点) 和 , (逗号) 互换...而 Decimal.Parse 将:

string stringValue = "45.889,33";
CultureInfo currentCulture = Thread.CurrentCulture; //set this way up in the execution chain
decimal thenumber = Decimal.Parse(stringValue, currentCulture);
//thenumber = 45889.33 in us-en display format.

数值解析不是正则表达式的良好应用,IMO。

关于c# - 正则表达式几乎完美的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23350562/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com