Java String replaceAll 正则表达式删除除数字、点和空格之外的所有内容

标签 java regex string

我浏览了很多正则表达式主题,但没有一个能让我在我的特定情况下取得成功。

(使用 java)我有一些字符序列,然后将其转换为数组并将数字提取到 double 组。

asdsad 59 asdf .2 asdf 56 89 .a 2.4 wef 95 asdf.

然后我想用正则表达式去掉多余的部分,组成下面的字符串

59 2 56 89 2.4 95

这样我就可以使用 .split("") 并将它们全部放入一个 double 组中。

直到这一刻我使用了以下表达式

[^0-9.\s]

但它留下了额外的点,因此不可靠。现在我正在尝试类似的东西

[^0-9.\s]|([^0-9]\.[^0-9])

但它根本不起作用,我不太擅长正则表达式,所以你能解释一下为什么最后一个表达式不起作用以及如何修复它吗。

最佳答案

您是否尝试过 string.replaceAll("[^\\d\\. ]","")

您可以在此处查看结果:https://regex101.com/r/X6gLaY/2

String string = "asdsad 59 asdf 2 asdf 56 89 .a 2.4 wef 95 asdf.";
String regex = "[^\\d\\. ]| \\.|\\.$";
System.out.println(string.replaceAll(regex,""));

Java 示例:http://ideone.com/w4BWOZ

输出: 59 2 56 89 2.4 95

关于Java String replaceAll 正则表达式删除除数字、点和空格之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40957137/

相关文章:

java - 通过访问 2 个 .csv 文件中的数据来创建条形图

java - "Specializing"子类型的方法抛出检查异常?

ruby - 多行 RegEx : match last occurrence only

regex - 使用 Sed 和正则表达式替换字符串

java - 初始化要在循环内重复使用的 String 的内存有效方法

java - 需要 key.equals() java 的替代方案

java - 关闭 PrintWriter 后无法写入新的 HTML 内容

javascript - 使用正则表达式匹配 0 到 100 或 0% 到 100%

swift - 快速逐字显示文本

ruby-on-rails - 测试字符串是否无内容