Regex删除空格//Android Java之后的所有字符

Regex删除空格//Android Java之后的所有字符,java,android,regex,Java,Android,Regex,我尝试用RegEx将以下字符串1.00h.转换为1.00,但我对它不熟悉,需要您的帮助。我试过如下方法 seanceLengthValue = Integer.parseInt( currentService.getSeanceLength().replaceAll("\\D\\w+","")); 只需匹配/保留/捕获第一个非空白字符,并将表达式锚定到开头: ^(\S+) 请参见(在Java中,您需要对反斜杠进行转义,使其有效地变成^(\\S+)。尝试以下模式:(\d*.\d+\d+) 它使

我尝试用RegEx将以下字符串
1.00h.
转换为
1.00
,但我对它不熟悉,需要您的帮助。我试过如下方法

seanceLengthValue = Integer.parseInt(
currentService.getSeanceLength().replaceAll("\\D\\w+",""));

只需匹配/保留/捕获第一个非空白字符,并将表达式锚定到开头:

^(\S+)
请参见(在
Java
中,您需要对反斜杠进行转义,使其有效地变成
^(\\S+)

尝试以下模式:
(\d*.\d+\d+)

它使用交替来匹配各种类型的十进制数格式:

\d*\.\d+
将匹配零个或多个数字
\d
,按字面意思是点
\.
,然后是一个或多个数字
\d+
,因此它将匹配1.0、.01等

\d+
-匹配一个或多个数字,以防有十进制分隔符

您只需使用:

seanceLengthValue = Double.parseDouble(
            currentService.getSeanceLength().replaceAll(" [a-zA-Z]", "");

在这里,我们将所有出现的字母表和空格替换为
”。此外,由于生成的字符串将是一个双精度字符串,因此需要使用
double.parseDouble()
进行转换。

这就是如何进行转换的方法

String str = "1.00 h";
Pattern p = Pattern.compile("^(\\S+)");
Matcher m = p.matcher(str);
m.find();
Log.i("Findings", "value is >>" + m.group(0) + "<<");
注意:如果有多个空格,它仍然只会给出第一个空格


e、 g;如果字符串为“1.00 h 2.00 f”;它将只给出“1.00”。

使用正则表达式将下面的字符串“1.00h”转换为1.00->即使得到1.00,它仍然无法工作。无法将
1.00
解析为int.@Evgeny Ladyzhenskiy:有什么答案对你有用吗?如果是的话,请考虑接受/鼓励他们。
seanceLengthValue = Float.parseFloat(m.group(0));