求一个正规表达式,删除字符串中的数字和符号,用空隔代替,但是如果是汉字的电码\0000-\9999不能删除

nisus_lee 2011-11-25 10:31:06
求一个正规表达式,删除字符串中的数字和符号,用空隔代替,但是如果是汉字的电码\0000-\9999不能删除。

例如:"abc11,cd123 \\0123" 删除后 应该是打印出来应该是 "abc cd \0123"
...全文
166 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nisus_lee 2011-11-25
  • 打赏
  • 举报
回复
不全面,\\后面是四位数字,才表达是电码,如果\\aaaaa 就要删除'\\'(删除所有符号) 或\\23(后面不是四位数)就要全部删掉
qybao 2011-11-25
  • 打赏
  • 举报
回复
好像这样简单一点,不知道是否考虑全面
String s = "abc11,cd123 \\0123";
s = s.replaceAll("([^\\\\\\d]+)\\d+", "$1");
System.out.println(s);
qybao 2011-11-25
  • 打赏
  • 举报
回复
for example
String s = "abc11,cd123 \\0123";
Pattern p = Pattern.compile(".*?\\d+");
Matcher m = p.matcher(s);
StringBuffer sb = new StringBuffer();
while (m.find()) {
if (!m.group().matches("\\W*\\\\\\d+")) {
m.appendReplacement(sb, m.group().replaceAll("\\d+", ""));
}
}
m.appendTail(sb);
System.out.println(sb);
Leo55888 2011-11-25
  • 打赏
  • 举报
回复
难点不在删除字符 在过滤电码数字 另外像大家推荐个JAVA技术交流群8319449

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧