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

时间:2014-02-09 16:54:01

标签: android regex

我刚开始使用正则表达式并且一直在使用教程,但是我有时会使用常规表达,但并不是所有的时间。我从我的Android手机的联系人列表中获取了我的号码。我试图摆脱所有空间,'(',')'和' - '

例如:

1. (555) 867-5309 -> 5558675309
2. 1555-555-5555 -> 15555555555
3. 555-555-5555 -> 5555555555

这是我正在使用的行

String formatphone = contactPhone.replaceAll("\\s()-","");

对于某些数字,它只返回数字,有时它不会改变格式。

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

2 个答案:

答案 0 :(得分:1)

将所需的字符放在字符类中:

String formatphone = contactPhone.replaceAll("[ ()-]","");

确保将连字符-放在任何一端。

答案 1 :(得分:0)

尝试使用:

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

作为正则表达式,您使用[]定义集合。在该集合中,您可以包含要替换的任何字符。由于()是特殊含义字符,因此您必须逃避它们。由于-是一个用于设计范围的特殊字符,它必须是你集合中的最后一个字符,所以如果它背后没有任何东西,它不是一个范围,而只是那个字符(你也可以逃避它,虽然)。