Java 字符串正则友好方法全解析
1. 正则表达式与字符串对象的特殊字符处理
在使用正则表达式和字符串对象时,有一个重要的注意事项:特殊字符,如数字 \d 和单词标记 \w 等,在传入字符串时需要进行两次分隔。例如,要在 Java 字符串对象中搜索数字,必须将 \ 字符的数量翻倍,即 \d 在 Java 字符串中要写成 \\d 。
下面通过一个例子来说明处理特殊字符时可能遇到的问题。假设要将字符串 "I want to use a d character" 中的每个 d 替换为 \d ,以下是尝试的不同代码及结果:
// 代码 1:编译失败,非法转义字符错误
String tmp = "I want to use a d character";
String retval = tmp.replaceAll("d","\d");
// 代码 2:编译通过,但结果不符合预期,无变化
String retval = tmp.replaceAll("d","\\d");
// 代码 3:编译失败,非法转义字符错误
String retval = tmp.replaceAll("d","\\\d");
// 代码 4:成功替换
String retval = tmp.replaceAll("d","\\\\d");
在代码 4 中,
超级会员免费看
订阅专栏 解锁全文
1132

被折叠的 条评论
为什么被折叠?



