【问题标题】:Regular Expression for negative accounting money values?负会计货币价值的正则表达式?
【发布时间】:2021-12-22 13:56:01
【问题描述】:

我很难找到解决负会计/货币价值的方法,如下所示:

(1.00)

(100)

(100.00)

我已经尝试过了,但由于某种原因,它允许使用诸如“abcd”之类的值。

^0\.00||(\(\d*(?:\.\d{1,2})?\))?$

【问题讨论】:

    标签: c# asp.net regex


    【解决方案1】:

    它不匹配abcd,但是如果你测试字符串是否匹配,那么它会是真的,因为有匹配的位置。

    由于字符串末尾的所有数字都是可选的,因此有一个可以匹配的位置。

    || 也匹配 0.00 之后、数字部分之前和之后的位置以及 abcd 中的每个位置或空字符串。


    您可以将|| 更改为|,至少匹配一个数字,并为两种选择使用交替:

    ^(?:0\.00|\(\d+(?:\.\d{1,2})?\))$
    
    • ^ 字符串开始
    • (?: 交替的非捕获组
      • 0\.00匹配0.00
      • |或者
      • \(\d+(?:\.\d{1,2})?\) 匹配 ( 1+ 位,可选 . 和 1-2 位和 )
    • )关闭非捕获组
    • $字符串结束

    Regex demo

    【讨论】:

      猜你喜欢
      • 2013-02-02
      • 2012-11-30
      • 1970-01-01
      • 2022-11-26
      • 2010-10-23
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      相关资源
      最近更新 更多