river_hiter

          有關(guān)正則表達(dá)式的一個技巧

          最近編個小程序,要涉及到讀取用戶輸入的文件路徑,并根據(jù)其保存到相應(yīng)的目錄。
          由于用戶輸入的是一般的字符表達(dá)式,比如“D:\document\myprogram\first.java”.需要將'\'換成'\\'才行。剛開始以為replaceAll("\\", "\\\\”)就可以了。而后來發(fā)現(xiàn)需寫成replaceAll("\\\\", "\\\\\\\\”)才行。自己又編了個程序測試一下:
          String s = "D:\\documents\\first.java"
          String ss = ss = s.replaceAll("\\\\", "\\\\\\\\”);
          System.out.println("s= " + s);
          System.out.println("ss=" + ss);
          結(jié)果輸出:
          s= D:\documents\first.java
          ss= D:\\documents\\first.java
          后來仔細(xì)想想才明白,首先,java會把“\\\\”解釋成一個字符串,接下來,由于replaceAll是以正則表達(dá)式作為參數(shù),所以“\\”被解釋成一個regex。對于一個regex來說這就代表著一個字符,就是“\”。對后面的那個8個\來說,最終會被解釋成“\\”。

          posted on 2006-09-04 20:36 何晏成 閱讀(167) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 合水县| 商都县| 玛多县| 东宁县| 余干县| 乾安县| 永登县| 蓝山县| 顺义区| 嫩江县| 余干县| 淮滨县| 呼和浩特市| 思南县| 三台县| 九龙县| 福海县| 吉林市| 淮南市| 太湖县| 松江区| 鹤岗市| 兴化市| 尚义县| 潼关县| 银川市| 那坡县| 鹤岗市| 都兰县| 内黄县| 密云县| 柘城县| 满洲里市| 久治县| 横峰县| 仲巴县| 南靖县| 年辖:市辖区| 贡嘎县| 明星| 平山县|