正则表达式反斜杠为何四个斜杠?

来源:互联网 发布:网络接入方式 编辑:程序博客网 时间:2024/06/10 02:12

转载请注明出处:http://blog.csdn.net/yudbl/article/details/78285827

正则表达式反斜杠为何四个斜杠?下面是我的理解:

//String fileNameBack = "data\2012\09\18\20120918.txt";String fileNameBack = "data\\2012\\09\\18\\20120918.txt";//String fnb = fileNameBack.replace("\\\\","\\\\");//System.out.println(fnb);String[] temps = fileNameBack.split("\\\\");System.out.println(temps[temps.length-1]);//说明//(1)//反斜杠在配置文件路径时,由于它本身在java中有特殊意义,//作为转义符而存在,如“\n”(换行)等.//(2)//字符串中具体意义上的反斜杠要两个//也就是第一个反斜杠是作为转义符存在的,第二个才是真正意义上的反斜杠,//所以在字符串中要表示字符’\’要用“\\”来表示//例如:这样定义一个字符串路径 String pathStr= "data\20120918.txt"; 是错误的,//要这样定义String pathStr= "data\\20120918.txt";//(3)//正则表达式匹配一个反斜杠,需要四个反斜杠"\\\\"//在字符串中,两个反斜杠被解释为一个反斜杠,//然后在作为正则表达式, \\ 则被正则表达式引擎解释为 \,所以在正则表达式中需要使用四个反斜杠。 //也就是说,前两个反斜杠在字符串中被解释为一个反斜杠,后两个也被解释为一个反斜杠,//这时解释完毕后变成两个反斜杠,再由正则表达式解释两个反斜杠,就又解释成了一个反斜杠,//所以,在正则表达式中要匹配一个反斜杠时,需要四个反斜杠。//如:上面要匹配点号时,//需要在点号之前加上两个反斜杠,否则将被正则表达式当作一个点号,//一个点号在正则表达式中表示匹配任意字符了。


原创粉丝点击