我浏览了很多正则表达式主题,但没有一个能让我在我的特定情况下取得成功。
(使用 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/