Android正则表达式-替换所有空格';(';';)''-';

Android正则表达式-替换所有空格';(';';)''-';,android,regex,Android,Regex,我不喜欢正则表达式,也一直在使用教程,但我的正则表达式有时有效,但并非总是有效。我正在从安卓手机的联系人列表中获取我的号码。我正试图去掉所有的空格,“(”,“)”和“-” 例如: 1. (555) 867-5309 -> 5558675309 2. 1555-555-5555 -> 15555555555 3. 555-555-5555 -> 5555555555 这是我正在使用的线路 String formatphone = contactPhone.replaceAll(

我不喜欢正则表达式,也一直在使用教程,但我的正则表达式有时有效,但并非总是有效。我正在从安卓手机的联系人列表中获取我的号码。我正试图去掉所有的空格,“(”,“)”和“-”

例如:

1. (555) 867-5309 -> 5558675309
2. 1555-555-5555 -> 15555555555
3. 555-555-5555 -> 5555555555
这是我正在使用的线路

String formatphone = contactPhone.replaceAll("\\s()-","");
对于某些数字,它只返回数字,有时不改变格式


对吗?我是否需要格式化某些内容,因为我要将其从手机的联系人列表中删除?

将所需字符放入字符类:

String formatphone = contactPhone.replaceAll("[ ()-]","");
确保将连字符
-
放在两端。

尝试使用以下方法:

String formatphone = contactPhone.replaceAll("^.*[\\s\\(\\)-].*", "");

作为正则表达式,您正在使用
[]
定义一个集合。在该集合中,可以包含任何要替换的字符。由于
是特殊意义的字符,因此必须对它们进行转义。由于
-
是用于设计范围的特殊字符,因此它必须是集合中的最后一个字符,因此如果后面没有任何字符,则它不是范围,而只是该字符(不过,您也可以将其转义).

那么,将所有字符放入一个字符类与我的操作方式有什么区别呢?@user225502您的操作方式使其成为一个需要替换的字符串。这样,您就可以用替换来替换类中的任何字符。