代码之家  ›  专栏  ›  技术社区  ›  Andrus

RegEx模式用于带有可选千位分隔符和不同小数点的总和

  •  1
  • Andrus  · 技术社区  · 2 年前

    发票中的金额总是逗号后的两位小数。 小数点可以是逗号或点。 数字可以包含单个空格作为千分隔符。 可选地,它们的数字可以以-号开头。

    示例:

    Subtotal,    1 000.00 EUR
    VAT    1000,00
    Total, sum:    _343 444.45 EUR
    

    结果应该是

    1 000.00
    1000,00
    343 444.45
    

    这就是C#。NET RexExp模式。 有许多相似的问题,但并没有发现完全相同的问题。 使用。NET 7 ASP。NET MVC。

    答案在 Regex valid numbers with thousand separator 假设每个数字都在分隔线上。

    1 回复  |  直到 2 年前
        1
  •  2
  •   markalex    2 年前

    -?[0-9]{1,3}(?: ?[0-9]{3})*[.,][0-9]{2}

    说明:

    • -? -可选的 - 签名
    • [0-9]{1,3} -一到三位数字。第一个千位分隔符之前的数字块,
    • (?: ?[0-9]{3})* -可选的空间和重复任意次数的三位数块,
    • [.,] -点或逗号:十进制分隔符,
    • [0-9]{2} -两位数:小数部分。

    Demo here