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

转载请注明出处: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)
			//正则表达式匹配一个反斜杠,需要四个反斜杠"\\\\"
			//在字符串中,两个反斜杠被解释为一个反斜杠,
			//然后在作为正则表达式, \\ 则被正则表达式引擎解释为 \,所以在正则表达式中需要使用四个反斜杠。 
			//也就是说,前两个反斜杠在字符串中被解释为一个反斜杠,后两个也被解释为一个反斜杠,
			//这时解释完毕后变成两个反斜杠,再由正则表达式解释两个反斜杠,就又解释成了一个反斜杠,
			//所以,在正则表达式中要匹配一个反斜杠时,需要四个反斜杠。
			//如:上面要匹配点号时,
			//需要在点号之前加上两个反斜杠,否则将被正则表达式当作一个点号,
			//一个点号在正则表达式中表示匹配任意字符了。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值