Java Regex删除价格输入的美元符号和尾随零
我想从价格输入中删除句点和Java Regex删除价格输入的美元符号和尾随零,java,regex,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"); 看 详细信息 ^\\\$-字符串开头
$
符号后的尾随零。比如说,
$100 -> 100
$10.000 -> 10
$10.0100 -> 10.01
$10.1234 -> 10.1234
但是,我有下面的正则表达式,它不删除$
或句点
符号:[.0]+$
。此外,它会删除所有零。您可以使用
String result = s.replaceAll("^\\$|(?:(\\.[0-9]*[1-9])|\\.)0+$", "$1");
看
详细信息
-字符串开头的^\\\$
字符$
-或|
-开始一个与以下两个备选方案匹配的非捕获组:(?:
-捕获组1(稍后使用(\\.[0-9]*[1-9])
占位符):一个$1
后跟0+个数字,后跟一个非0
-或|
-一个点\\.
-非捕获组结束)
-1+零0+
-字符串结束$
String result = s.replaceAll("^\\$|(?:(\\.[0-9]*[1-9])|\\.)0+$", "$1");
看
详细信息
-字符串开头的^\\\$
字符$
-或|
-开始一个与以下两个备选方案匹配的非捕获组:(?:
-捕获组1(稍后使用(\\.[0-9]*[1-9])
占位符):一个$1
后跟0+个数字,后跟一个非0
-或|
-一个点\\.
-非捕获组结束)
-1+零0+
-字符串结束$
.0010
呢<代码>0.001或.001
?用删除$
怎么样?替换(“$”,“)
,然后将字符串转换为浮点数?考虑:与其尝试删除,不如捕获并保留所需内容。使用一个匹配的组。@ WKTROSTRIBEI EHM HM好的问题,甚至没有考虑。但对于这些值,它应该保持不变。请参见@KevinO,它必须是正则表达式。按照我的应用程序的构建方式,我们有一个gui,在其中放置一个regex,用于格式化值,这就是为什么我需要一个regex。那么.0010
呢<代码>0.001或.001
?用删除$
怎么样?替换(“$”,“)
,然后将字符串转换为浮点数?考虑:与其尝试删除,不如捕获并保留所需内容。使用一个匹配的组。@ WKTROSTRIBEI EHM HM好的问题,甚至没有考虑。但对于这些值,它应该保持不变。请参见@KevinO,它必须是正则表达式。按照我的应用程序的构建方式,我们有一个gui,在其中放置一个正则表达式,用于格式化值,这就是我需要正则表达式的原因。