Java 正则表达式查找所有美元符号、括号和逗号

Java 正则表达式查找所有美元符号、括号和逗号,java,regex,Java,Regex,我需要一个正则表达式来删除所有美元符号、逗号、左括号和右括号的实例,以便将字符串解析为双精度 Exmaple是: ($108.34) $39.60 1,388.80 守则: @Parsed @Replace(expression = "", replacement = "") public Double extdPrice; 正则表达式=[^0-9\\.] 这就是你要找的。它将匹配除数字0-9和字符 因此,从技术上讲,此正则表达式将删除所有额外字符,如

我需要一个正则表达式来删除所有美元符号、逗号、左括号和右括号的实例,以便将字符串解析为双精度

Exmaple是:

($108.34)
$39.60
1,388.80
守则:

@Parsed
@Replace(expression = "", replacement = "")
public Double extdPrice;

正则表达式=
[^0-9\\.]

这就是你要找的。它将匹配除数字
0-9
和字符

因此,从技术上讲,此正则表达式将删除所有额外字符,如
$
USD

示例:
System.out.println(($123.89)“.replaceAll([^0-9\\.]”,“);
将给出一个输出
123.89

测试输出:

  • ($108.34)=>108.34
  • $39.60=>39.60
  • 1388.80=>1388.80

这可能会有所帮助,我们删除此列表中的所有元素:,$()

import java.util.regex.Matcher;
导入java.util.regex.Pattern;
公开课范例{
公共静态void main(字符串[]args){
最后一个字符串regex=“[(),$]”;
final String=“($108.34)\n”
+“$39.60\n”
+ "1,388.80";
最终字符串subst=“”;
最终模式=Pattern.compile(regex);
final Matcher Matcher=pattern.Matcher(字符串);
//被替换的值将包含在结果变量中
最终字符串结果=matcher.replaceAll(subst);
System.out.println(“替换结果:+结果”);
}
}
\d{1,3}(\,\d\d\d)*(\。\d+)?
可以像您的示例一样匹配所有数字,但不能匹配123456(无逗号)。 结果是

108.34
39.60
1,388.80

你需要替换逗号,除数字、小数点和符号外,删除所有内容更为重要。但在计算括号中的数字时,括号中的数字是负数,你需要知道在转换时,这显然是金钱。你应该使用
BigDecimal
,而不是
Double
@user207421 p问题是
@Replace
注释不可重复,并且该值将插入MongoDB,因此必须使用
Double
。然后表定义也错误。它应该是
十进制(10,2)
大概吧。不要低估这个错误的严重性。出于我所说的原因,我怀疑你能用一个正则表达式来完成它。