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

标签 java regex

我想从价格输入中删除句点和 $ 符号之后的尾随零。例如,

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

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

最佳答案

你可以使用

String result = s.replaceAll("^\\$|(?:(\\.[0-9]*[1-9])|\\.)0+$", "$1");

参见 regex demo .

详情

  • ^\\$ - 字符串开头的 $ 字符
  • | - 或者
  • (?: - 匹配以下两种选择之一的非捕获组的开始:
    • (\\.[0-9]*[1-9]) - 捕获组 1(稍后用 $1 占位符引用):一个 . 后跟 0+ 数字后跟 0
    • 以外的数字
    • | - 或者
    • \\. - 一个点
  • ) - 非捕获组结束
  • 0+ - 1+ 个零
  • $ - 字符串结尾。

关于java - 用于删除价格输入的美元符号和尾随零的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50106693/

相关文章:

十进制数的 Javascript 正则表达式 - 替换非数字和多于一位的小数点

java - 是否可以将 .class 文件添加到 URLClassLoader 的 urlpath 中

java - 如果从 Overlay 开始,如何从 Activity 中获取结果?

mysql - 计算 MySQL 中某行中某个单词的出现次数

用于查找基本 URL 的 Javascript 正则表达式

regex - 使用Logstash解析范围请求 header

c# - 正则表达式 - 比赛后只允许有空格或什么都没有

java - 如何在 Spark Streaming 中抛出异常

java - Spring Data JPA Query By Example 与相关实体

java - 配置 jboss dashbuilder 以使用 apache httpd 身份验证