1

我正在尝试转换$(5.20)-5.20使用正则表达式,但似乎无法弄清楚如何使用正则表达式。有人可以帮我解决这个问题吗?我需要删除美元符号,只接受最多 1 个小数点的数字,即不接受5.2.0,但只接受5.20。此外,$开头的 是可选的,也可以有多个$

我开始的例子:

^\((\d)*\)$ - does not work

-$1
4

1 回答 1

7

试试这个正则表达式

^\$\((\d+\.\d+)\)$

你的替换应该已经没问题了。此正则表达式要求小数点前后至少有一位数字。

您的正则表达式的问题是,它只有在根本没有小数点的情况下才会匹配。你也不检查$字符。最后,如果这$(5.20)不是您的完整字符串,那么您应该在开头和结尾省略锚点:

\$\((\d+\.\d+)\)

如果您也想匹配没有小数点的数字,那么您可以将点和第二次重复设为可选:

\$*?\((\d+\.?\d*)\)
于 2012-10-02T16:18:23.907 回答