正则表达式数字和组合字符串中的点(点)

时间:2019-05-21 17:23:32

标签: java regex string

例如,我有一个字符串。

"Quantity : 2.85 kg"

这里,我只需要提取具有正确配置2.85的号码即可。

String.replaceAll("[^0-9]","");仅将数字提取为285,但我需要2.85。

请帮助。

2 个答案:

答案 0 :(得分:1)

您一定是在开玩笑,数字的模式是

p = "/d*(./d+)?"

并提取为:

 Matcher m = Pattern.compile(p)
while(m.find()) 
res = m.group(0)

答案 1 :(得分:1)

正则表达式是任何字符,然后是一个或多个带点的数字,后跟两位数字,即空格和kg。 捕获组用于捕获要提取的部分。

String test = "Quantity : 2.85 kg";

Pattern pattern = Pattern.compile(".*(\\d+\\.\\d\\d) kg");
Matcher matcher = pattern.matcher(test);

if(matcher.matches()){
    System.out.println(matcher.group(1));
}else{
    System.out.println("no match");
}