Java Regex删除文本中实数之外的所有句号

时间:2017-09-26 08:09:50

标签: java regex

我正在尝试编写一个简单的正则表达式来删除除实际数字之外的所有.

E.g。 该值为0.19psi。水位必须恢复正常。 Mtl.temp会很高..

以下正则表达式选择所有实数。

((\+|-)?([0-9]+)(\.[0-9]+)?)|((\+|-)?\.?[0-9]+)

我可以做另一种方式,我可以选择模式,其中它选择.前面有一个单词并按空格成功。但是,输入测试不是以正确的语法方式编写的。

1 个答案:

答案 0 :(得分:1)

你可以使用正则表达式

\.(?!\d)

regex101 demo

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = "\\.(?!\\d)";
final String string = ".12 . 0.123 Hi.there I am .invalid.";

final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
    for (int i = 1; i <= matcher.groupCount(); i++) {
        System.out.println("Group " + i + ": " + matcher.group(i));
    }
}