我的正则表达式不会删除java中数字之间的短划线

时间:2012-11-01 13:15:59

标签: java regex

我曾尝试在JAVA中使用正则表达式来替换字符串中任何有趣的字符,但是,它似乎无法删除数字之间的“ - ”

这是我的代码,

// Remove all (,),-,.,[,],<,>,{,} from string

myMobileNumber.replaceAll("[^\\d]", "");

例65-12345678

它仍然允许 - 通过而不删除它。 =(

1 个答案:

答案 0 :(得分:5)

您应该重新分配结果。 String是一个不可变对象,包括.replaceAll在内的所有方法都不会修改它。

myMobileNumber = myMobileNumber.replaceAll("[^\\d]", "");

(顺便说一句,模式"\\D"相当于"[^\\d]"。)