我刚开始使用正则表达式并且一直在使用教程,但是我有时会使用常规表达,但并不是所有的时间。我从我的Android手机的联系人列表中获取了我的号码。我试图摆脱所有空间,'(',')'和' - '
例如:
1. (555) 867-5309 -> 5558675309
2. 1555-555-5555 -> 15555555555
3. 555-555-5555 -> 5555555555
这是我正在使用的行
String formatphone = contactPhone.replaceAll("\\s()-","");
对于某些数字,它只返回数字,有时它不会改变格式。
这是对的吗?我是否需要格式化某些内容,因为我将其从手机的联系人列表中删除?
答案 0 :(得分:1)
将所需的字符放在字符类中:
String formatphone = contactPhone.replaceAll("[ ()-]","");
确保将连字符-
放在任何一端。
答案 1 :(得分:0)
尝试使用:
String formatphone = contactPhone.replaceAll("^.*[\\s\\(\\)-].*", "");
作为正则表达式,您使用[]
定义集合。在该集合中,您可以包含要替换的任何字符。由于(
和)
是特殊含义字符,因此您必须逃避它们。由于-
是一个用于设计范围的特殊字符,它必须是你集合中的最后一个字符,所以如果它背后没有任何东西,它不是一个范围,而只是那个字符(你也可以逃避它,虽然)。