<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tinguo002

     

    java正則表達式 提取、替換(轉(zhuǎn))

    java正則表達式 提取、替換

    事例1
    http://www.cnblogs.com/lihuiyy/archive/2012/10/08/2715138.html
    比如,現(xiàn)在有一個 endlist.txt 文本文件,內(nèi)容如下:
    1300102,北京市
    1300103,北京市
    1300104,北京市
    1300105,北京市
    1300106,北京市
    1300107,北京市
    1300108,北京市
    1300109,北京市
    1300110,北京市
    1300111,北京市
    1300112,北京市
    1300113,北京市
    1300114,北京市
    1300115,北京市
    1300116,北京市
    1300117,北京市
    1300118,北京市
    1300119,北京市
    七位數(shù)字代表手機號碼的前七位,后面的漢字表示號碼歸屬地。現(xiàn)在我要將這些內(nèi)容按照 130 131 132...  開頭分別寫到 130.txt 131.txt 132.txt.....這些文件中。
    public static void main(String args[]) {
             File file 
    = null;
             BufferedReader br 
    = null;
             StringBuffer buffer 
    = null;
             String childPath 
    = "src/endlist.txt";
             String data 
    = "";
             
    try {
                 file 
    = new File(childPath);
                 buffer 
    = new StringBuffer();
                 InputStreamReader isr 
    = new InputStreamReader(new FileInputStream(file), "utf-8");
                 br 
    = new BufferedReader(isr);
                 
    int s;
                 
    while ((s = br.read()) != -1{
                     buffer.append((
    char) s);
                 }

                 data 
    = buffer.toString();
             }
     catch (Exception e) {
                 e.printStackTrace();
             }

             Map
    <String, ArrayList<String>> resultMap = new HashMap<String, ArrayList<String>>();
             
    for (int i = 0; i < 10; i++{
                 resultMap.put(
    "13" + i, new ArrayList<String>());
             }

     
            Pattern pattern = Pattern.compile("(\\d{3})(\\d{4},[\u4e00-\u9fa5]*\\n)");
             Matcher matcher = pattern.matcher(data);          
    while (matcher.find()) {
                 resultMap.get(matcher.group(
    1)).add(matcher.group(2));
             }

             
    for (int i = 0; i < 10; i++{
                 
    if (resultMap.get("13" + i).size() > 0{
                     
    try {
                         File outFile 
    = new File("src/13" + i + ".txt");
                         FileOutputStream outputStream 
    = new FileOutputStream(outFile);
                         OutputStreamWriter writer 
    = new OutputStreamWriter(outputStream, "utf-8");
                         ArrayList
    <String> tempList = resultMap.get("13" + i);
                         
    for (int j = 0; j < tempList.size(); j++{
                             writer.append(resultMap.get(
    "13" + i).get(j));
                         }

                         writer.close();
                         outputStream.close();
                     }
     catch (Exception e) {
                         
    // TODO Auto-generated catch block
                         e.printStackTrace();
                     }

                 }

             }

         }

    第24行使用正則表達式  "(\\d{3})(\\d{4},[\u4e00-\u9fa5]*\\n)" 每個()中的內(nèi)容為一組,索引從 1 開始,0表示整個表達式。所以這個表達式分為兩組,第一組表示3個數(shù)字,第二組表示 4個數(shù)字加多個漢字加一個換行符。提取時如26-28行所示。



    事例2
    http://www.cnblogs.com/jxgxy/archive/2012/07/30/2615997.html
    import java.util.ArrayList;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class test {
        
    public static void main(String[] args) {
            getStrings(); 
    //用正則表達式獲取指定字符串內(nèi)容中的指定內(nèi)容
            System.out.println("********************");
            replace(); 
    //用正則表達式替換字符串內(nèi)容
            System.out.println("********************");
            strSplit(); 
    //使用正則表達式切割字符串
            System.out.println("********************");
            strMatch(); 
    //字符串匹配
        }


        
    private static void strMatch() {
            String phone 
    = "13539770000";
            
    //檢查phone是否是合格的手機號(標準:1開頭,第二位為3,5,8,后9位為任意數(shù)字)
            System.out.println(phone + ":" + phone.matches("1[358][0-9]{9,9}")); //true    
            
            String str 
    = "abcd12345efghijklmn";
            
    //檢查str中間是否包含12345
            System.out.println(str + ":" + str.matches("\\w+12345\\w+")); //true
            System.out.println(str + ":" + str.matches("\\w+123456\\w+")); //false
        }


        
    private static void strSplit() {
            String str 
    = "asfasf.sdfsaf.sdfsdfas.asdfasfdasfd.wrqwrwqer.asfsafasf.safgfdgdsg";
            String[] strs 
    = str.split("\\.");
            
    for (String s : strs){
                System.out.println(s);
            }
            
        }


        
    private static void getStrings() {
            String str 
    = "rrwerqq84461376qqasfdasdfrrwerqq84461377qqasfdasdaa654645aafrrwerqq84461378qqasfdaa654646aaasdfrrwerqq84461379qqasfdasdfrrwerqq84461376qqasfdasdf";
            Pattern p 
    = Pattern.compile("qq(.*?)qq");
            Matcher m 
    = p.matcher(str);
            ArrayList
    <String> strs = new ArrayList<String>();
            
    while (m.find()) {
                strs.add(m.group(
    1));            
            }
     
            
    for (String s : strs){
                System.out.println(s);
            }
            
        }


        
    private static void replace() {
            String str 
    = "asfas5fsaf5s4fs6af.sdaf.asf.wqre.qwr.fdsf.asf.asf.asf";
            
    //將字符串中的.替換成_,因為.是特殊字符,所以要用\.表達,又因為\是特殊字符,所以要用\\.來表達.
            str = str.replaceAll("\\.""_");
            System.out.println(str);        
        }

    }















    歡迎大家訪問我的個人網(wǎng)站 萌萌的IT人

    posted on 2013-05-31 20:26 一堣而安 閱讀(3023) 評論(0)  編輯  收藏 所屬分類: java

    導航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费无码VA一区二区三区| a级毛片在线免费| 亚洲精品无码av片| 特级毛片A级毛片免费播放| 久久久免费观成人影院| 国产a视频精品免费观看| 国产视频精品免费| 国产亚洲精品自在久久| 亚洲av产在线精品亚洲第一站| 亚洲精华国产精华精华液网站| 女人18特级一级毛片免费视频| 亚洲人成色77777| 国产精品亚洲小说专区| 在线看片免费人成视久网| 亚洲日韩中文在线精品第一| 亚洲第一页在线播放| 午夜免费国产体验区免费的| 国产高清免费视频| 亚洲AV人人澡人人爽人人夜夜| 亚洲人成www在线播放| 免费人成黄页在线观看日本| 日韩一级在线播放免费观看| 亚洲精品国产日韩| 国产一级大片免费看| 亚洲国产美女福利直播秀一区二区| 99在线视频免费观看| 亚洲成av人片在线看片| 四虎永久在线免费观看| 91免费国产视频| 狠狠色香婷婷久久亚洲精品| 8090在线观看免费观看| 亚洲粉嫩美白在线| 亚洲欧洲日本在线| 日本黄页网址在线看免费不卡| 国产午夜鲁丝片AV无码免费| 岛国精品一区免费视频在线观看 | 永久免费bbbbbb视频| 亚洲国产成人综合| 成年黄网站色大免费全看| 美女18毛片免费视频| 中文字幕亚洲综合精品一区|