第一步:System.out.println("\w");
String s="\w";
结果: java报错误:Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
System.err.println("\\w");
结果:输出 \w
小结1:说明java对于普通字符串(不用于正则表达式)而言,只能识别原始定义的 \b \t \n \f \r \" \' \\ 8中转义字符。
第二步:我们知道 \w 在正则表达式中表示:单词字符:[a-zA-Z_0-9],如果我们需要用正则表达式去匹配的话,应该写成
String s1="\\w";
小结2:正则表达式转义字符=原始8种转义字符+自定义转义字符(\w \s等)。对于字符串s1,如果匹配正则,则
表示单词字符,如果当成字符串,就是\w 。当然,对于所有的正则表达式转义字符都需要在前面多加一个
\ ,只有这样,才能让正则匹配器找到,它会自己去掉你多加的那个 \(反编译看代码执行过程)
扩展:java会对 \ 它其后的东西执行转义,所以对于表示路径:E:\img ,就应该写成E:\\img