我想删除期间后面的尾随零和价格输入中的$
符号。例如,
$100 -> 100
$10.000 -> 10
$10.0100 -> 10.01
$10.1234 -> 10.1234
我有以下正则表达式,但是,它不会删除$
或句点.
符号:[.0]+$
。此外,它删除所有零。
答案 0 :(得分:3)
您可以使用
String result = s.replaceAll("^\\$|(?:(\\.[0-9]*[1-9])|\\.)0+$", "$1");
请参阅regex demo。
<强>详情
^\\$
- 字符串开头的$
字符|
- 或(?:
- 开始匹配2个备选方案中的任何一个的非捕获组:
(\\.[0-9]*[1-9])
- 捕获第1组(稍后使用$1
占位符引用):.
后跟0+数字后跟0
以外的数字|
- 或\\.
- 一个点)
- 非捕获组的结束0+
- 1+ zeros $
- 字符串结束。