如何从java中的字符串中删除非数字字符?

unj*_*nj2 57 java regex

我有一根长串.将数字拆分成数组的正则表达式是什么?

Ste*_*all 139

你要删除还是拆分?这将删除所有非数字字符.

myStr = myStr.replaceAll( "[^\\d]", "" )
Run Code Online (Sandbox Code Playgroud)

  • 没有方括号版本:`myStr.replaceAll("\\ D +","")`,可能更具可读性. (12认同)
  • `myStr = myStr.replaceAll("[\\ D]","");` (4认同)

And*_*rey 23

另一种从字符串中删除所有非数字字符的方法:

String newString = oldString.replaceAll("[^0-9]", "");
Run Code Online (Sandbox Code Playgroud)


eve*_*otc 17

String str= "somestring";
String[] values = str.split("\\D+"); 
Run Code Online (Sandbox Code Playgroud)


kri*_*ajb 8

另一个正则表达式解决方案

string.replace(/\D/g,'');  //remove the non-Numeric
Run Code Online (Sandbox Code Playgroud)

同样,你可以

string.replace(/\W/g,'');  //remove the non-alphaNumeric
Run Code Online (Sandbox Code Playgroud)

在RegEX中,符号'\'将使其后面的字母成为模板:\ w - 字母数字\ W - 非AlphaNumeric,在您将字母大写时否定.


Ste*_*esa 7

您将需要使用String类的Split()方法并传入一个"\ D +"的正则表达式,它将匹配至少一个非数字.

myString.split("\\D+");
Run Code Online (Sandbox Code Playgroud)