正则表达式中一个奇怪的问题 本帖最后由 bzwc830819 于 2010-09-29 08:38:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把a打印出来你就知道了,\u000B是Unicode编码,代表一个字符。 unicode编码本身你要正则替换?这个有点儿麻烦吧?因为java解释unicode并不是你看到的字面上的\u000B这样的东西 String a = "aaa\u000Bbbb";改成String a = "aaa\\u000Bbbb"; String a = "aaa\\\\u000Bbbb"; 问题就是不能改,因为从数据库里取出来的值就是"aaa\u000Bbbb"; 解决了,将 String a="aaa\u000Bbbb"; String reg="[\\\\]u00[0~1]\\w"; System.out.println(a.replaceAll(reg, ""));改成: String a="aaa\u000Bbbb"; String reg="[\u0000-\u001F]"; System.out.println(a.replaceAll(reg, ""));这样就可以了 你上面的测试代码中的字面量"aaa\\u000Bbbb"和数据库中取出的"aaa\u000Bbbb"是等效的。只要测试String a = "aaa\\u000Bbbb";通过,String a = getFromDb();//aaa\u000Bbbb就一定会成功。数据库可以么? 从数据库取出来的就是aaa\u000Bbbb,在使用之前需要将其中的UNICODE编码去掉,解决了,还是谢谢你 还有 为什么 A和a在UNICODE中的编码是一样的吗?我测试的是一样的,怎么回事? A \u0041a \u0061不一样。 在weblogic中如何配置数据库?急! java 网页 中文乱码的问题 求高手帮助 jsp页面城市切换! 探讨:关于中小量数据的备份,再此提供一种解决方案 作为程序开发人员 有关hibernate复合主键修改的问题 初学Java,哪位大侠帮忙看看 关于Spring事务控制的困扰,高手请进! 问两行代码的含义 怪问题 severlet问题 好奇怪的工程结构,杂整啊
因为java解释unicode并不是你看到的字面上的\u000B这样的东西
改成
String a = "aaa\\u000Bbbb";
String a="aaa\u000Bbbb";
String reg="[\\\\]u00[0~1]\\w";
System.out.println(a.replaceAll(reg, ""));
改成:
String a="aaa\u000Bbbb";
String reg="[\u0000-\u001F]";
System.out.println(a.replaceAll(reg, ""));
这样就可以了
只要测试
String a = "aaa\\u000Bbbb";
通过,String a = getFromDb();//aaa\u000Bbbb
就一定会成功。数据库可以么?
a \u0061
不一样。