负会计货币价值的正则表达式?
Posted
技术标签:
【中文标题】负会计货币价值的正则表达式?【英文标题】:Regular Expression for negative accounting money values? 【发布时间】:2021-12-22 13:56:01 【问题描述】:我很难找到解决负会计/货币价值的方法,如下所示:
(1.00)
(100)
(100.00)
我已经尝试过了,但由于某种原因,它允许使用诸如“abcd”之类的值。
^0\.00||(\(\d*(?:\.\d1,2)?\))?$
【问题讨论】:
【参考方案1】:它不匹配abcd,但是如果你测试字符串是否匹配,那么它会是真的,因为有匹配的位置。
由于字符串末尾的所有数字都是可选的,因此有一个可以匹配的位置。
||
也匹配 0.00 之后、数字部分之前和之后的位置以及 abcd 中的每个位置或空字符串。
您可以将||
更改为|
,至少匹配一个数字,并为两种选择使用交替:
^(?:0\.00|\(\d+(?:\.\d1,2)?\))$
^
字符串开始
(?:
交替的非捕获组
0\.00
匹配0.00
|
或者
\(\d+(?:\.\d1,2)?\)
匹配 (
1+ 位,可选 .
和 1-2 位和 )
)
关闭非捕获组
$
字符串结束
Regex demo
【讨论】:
以上是关于负会计货币价值的正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章