我正在尝试使用正则表达式将$(5.20)
转换为-5.20
,但似乎无法弄清楚如何使用正则表达式。有人可以帮我解决这个问题吗?我需要删除美元符号,只接受最多1位小数的数字,即不接受5.2.0
,而只接受5.20
。此外,开头的$
是可选的,也可能有多个$
。
我开始的例子:
^\((\d)*\)$ - does not work
-$1
答案 0 :(得分:7)
试试这个正则表达式
^\$\((\d+\.\d+)\)$
你的替换应该已经没事了。这个正则表达式要求小数点前后至少有一位数。
正则表达式的问题在于,只有在没有小数点的情况下它才会匹配。另外,您不检查$
字符。最后,如果这个$(5.20)
不是你的完整字符串,那么你应该在开头和结尾省略锚点:
\$\((\d+\.\d+)\)
如果你想匹配没有小数点的数字,那么你可以使点和第二个重复可选:
\$*?\((\d+\.?\d*)\)