river_hiter

有关正则表达式的一个技巧

最近编个小程序,要涉及到读取用户输入的文件路径,并根据其保存到相应的目录。
由于用户输入的是一般的字符表达式,比如“D:\document\myprogram\first.java”.需要将'\'换成'\\'才行。刚开始以为replaceAll("\\", "\\\\”)就可以了。而后来发现需写成replaceAll("\\\\", "\\\\\\\\”)才行。自己又编了个程序测试一下:
String s = "D:\\documents\\first.java"
String ss = ss = s.replaceAll("\\\\", "\\\\\\\\”);
System.out.println("s= " + s);
System.out.println("ss=" + ss);
结果输出:
s= D:\documents\first.java
ss= D:\\documents\\first.java
后来仔细想想才明白,首先,java会把“\\\\”解释成一个字符串,接下来,由于replaceAll是以正则表达式作为参数,所以“\\”被解释成一个regex。对于一个regex来说这就代表着一个字符,就是“\”。对后面的那个8个\来说,最终会被解释成“\\”。

posted on 2006-09-04 20:36 何晏成 阅读(116) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

My Links

Blog Stats

常用链接

留言簿(1)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜