黑马程序员技术交流社区
标题:
关于正则表达式的疑问
[打印本页]
作者:
尹旗龙
时间:
2012-2-10 15:19
标题:
关于正则表达式的疑问
本帖最后由 尹旗龙 于 2012-2-10 16:21 编辑
将字符串中的两个斜杠替换成一个斜杠:
System.out.println("\\\\".replaceAll("\\\\{2}", "\\"));这句执行时 抛异常!
而下面这个就正常显示一个星号
System.out.println("\\\\".replaceAll("\\\\{2}", "*"));
为什么会是这样呢??
作者:
蒙武辉
时间:
2012-2-10 16:00
System.out.println("\\\\".replaceAll("\\\\{2}", "\\"));这句执行时 抛异常!
应该这样写才对System.out.println("\\\\".replaceAll("\\\\ {2}", "\\"));
\{有转义作用
作者:
万正
时间:
2012-2-10 16:06
本帖最后由 向北航行 于 2012-2-10 16:11 编辑
'\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\。
第一句可以改成System.out.println("\\\\".replaceAll("\\\\{2}", "\\\\"));
作者:
尹旗龙
时间:
2012-2-10 16:21
向北航行 发表于 2012-2-10 16:06
'\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\" ...
学习了 谢谢
作者:
小白
时间:
2012-2-10 17:33
“*”匹配0或多个正好在它之前的那个字符,本身不代表特定的字符!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2