删除字符串中的所有内容除外.和数字通过0-9 - Java

Luc*_*fer 2 java regex numbers replaceall

我正在尝试阅读一行文本并删除除句点和数字之外的所有内容,通过0 - 9.

这是我正在尝试但它删除除空格之外的所有内容.

distance.replaceAll("[^0-9 + \\.]", "");
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 5

文字..(并且转义\\不是一个\),你可以使用\\d数字.喜欢,

String distance = "123zz.0";
System.out.println(distance.replaceAll("[^\\d.]", ""));
Run Code Online (Sandbox Code Playgroud)

产出(按要求)

123.0
Run Code Online (Sandbox Code Playgroud)

  • `.`不是字符类中的特殊字符.通过在字符类之后添加"+",您可以获得****小的性能提升.另外,既然你有角色类,`\\ d`并不比'0-9`好,因为它们都是3个字符长.好的,我现在就停止挑剔了. (3认同)
  • 当你在角色类中时,你需要逃避`.`吗?我尝试没有,它工作正常. (2认同)
  • 您也可以采用相反的方法,而不是删除,而是取所需的内容并对结果进行联接。我不确定在Java中如何运作,但在javascript中会是`“ 123.xx.sdfk234” .match(/(\ d | \。)+ / g).join(“”)` (2认同)