java 正则表达式替换

一直一来遇到"替换为/" 的时候概念总是很模糊,今天要搞搞清楚。
System.out.println("/"".replace("/"", "///""));
System.out.println("/"".replaceAll("/"", "/""));
System.out.println("/"".replaceAll("///"", "/""));

需要注意的是:/在正则表达式里需要再转义一次,所以replaceAll的第二个参数变得很长。 但是最后一行为什么也是可以的,这个我就不明白了,查了javadoc(在james的引导下),发现有这样一段话: It is an error to use a backslash prior to any alphabetic character that does not denote an escaped construct; these are reserved for future extensions to the regular-expression language. A backslash may be used prior to a non-alphabetic character regardless of whether that character is part of an unescaped construct. 此外还有,这样/这个符号在正则中如果什么都没有跟(没有转义),那么只是简单的引用后面那个字符; 配合上面那段文档也就是说,/+非字母字符 就等于 这个非字母字符(ie:/= 和 = 是一样),这就解释了 /"和"是一样的原因,哈哈。 搞了半天是javadoc没看仔细啊~。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值