正则表达式删除美元符号和尾随零的价格输入

时间:2018-04-30 19:06:45

标签: java regex

我想删除期间后面的尾随零和价格输入中的$符号。例如,

$100    -> 100
$10.000  -> 10
$10.0100 -> 10.01 
$10.1234 -> 10.1234

我有以下正则表达式,但是,它不会删除$或句点.符号:[.0]+$。此外,它删除所有零。

1 个答案:

答案 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
  • $ - 字符串结束。