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

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

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

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java regex 正則部分高級特性使用

    Posted on 2008-05-04 09:59 G_G 閱讀(2270) 評論(3)  編輯  收藏 所屬分類: javaGeneral
    這就不介紹了 代碼上:
    package?unit;

    import?java.util.regex.Matcher;
    import?java.util.regex.Pattern;

    import?org.junit.Assert;
    import?org.junit.Test;

    public?class?RegexUnit?{


    ????@Test
    ????
    /**
    ?????*?<p>向前\向后查找</p>
    ?????
    */
    ????
    public?void?unit9()throws?Exception{
    ????????String?testStr?
    =?"http://www.google.com";
    ????????
    ????????
    /*?一般查找
    ?????????*?.+(:)?查詢出結果包含?:
    ?????????
    */
    ????????Pattern?pattern?
    =?Pattern.compile(".+(:)");????????
    ????????Matcher?matcher?
    =??pattern.matcher(testStr);
    ????????????Assert.assertTrue(
    "錯誤:?查找出結果通過?.+(:)?此regex沒有包含?:?",
    ????????????????????matcher.find()?
    &&?matcher.group().equals("http:")?);
    ????????
    ????????
    /*??向前查找
    ?????????*??.+(?=:)?查詢結果不包含?:
    ?????????
    */
    ????????Pattern?pattern2?
    =?Pattern.compile(".+(?=:)");
    ????????Matcher?matcher2?
    =?pattern2.matcher(testStr);
    ????????????Assert.assertTrue(
    "錯誤:?查找出結果通過?.+(?=:)?此regex有包含?:?",
    ????????????????????matcher2.find()
    &&?matcher2.group().equals("http"));
    ????????
    /*?向后查找
    ?????????*?(?<=:).+
    ?????????
    */
    ????????Pattern?pattern3?
    =?Pattern.compile("(?<=://).+");
    ????????Matcher?matcher3?
    =?pattern3.matcher(testStr);
    ????????????Assert.assertTrue(
    "錯誤:查找出結果包含?http://?不向后查詢",
    ????????????????????matcher3.find()
    &&?matcher3.group().equals("www.google.com")?);
    ????}


    ????@Test
    ????
    /**?回朔應用?
    ?????*??查詢回朔、回朔替換、回朔大小寫替換
    ?????
    */
    ????
    public?void?unit8()throws?Exception{
    ????????String?testStr?
    =?"this?is?a?block?of?of?test,"+
    ????????????????????????????
    "?several?words?here?are?are?"?+
    ????????????????????????????
    "?repeated?,?and?and?they?should?not?be.?";
    ????????
    ????????Pattern?pattern?
    =?Pattern.compile("[?]+(\\w+)[?]+\\1");
    ????????Matcher?matcher?
    =?pattern.matcher(testStr);
    ????????
    //查詢結果?are?are?
    ????????Assert.assertTrue("錯誤:regex?不匹配?",?
    ????????????????matcher.find()
    &&matcher.group().split("?").length>=2?);
    ????????
    ????????
    while(?matcher.find()?){
    ????????????Assert.assertTrue(
    "錯誤:regex?不匹配?",?
    ????????????????????matcher.group().split(
    "?").length>=2?);
    ????????}
    ????????
    ????????
    ????????
    //替換
    ????????String?testStr2s?=?"313-555-1234";
    ????????Pattern?pattern2?
    =?Pattern.compile("(\\d{3})(-)(\\d{3})(-)(\\d{4})");
    ????????Matcher?mtmp?
    =??pattern2.matcher(testStr2s);
    ????????Assert.assertTrue(
    "錯誤:沒有查替換",
    ????????????????mtmp.find()?
    &&?
    ????????????????????mtmp.replaceAll(
    "($1)?$3-$5").equals("(313)?555-1234")?);
    ????????
    ????????
    ????????
    /*大小寫替換(java?不能成功)
    ?????????*??\E?結束?\L?或?\U轉換
    ?????????*??\l??\L?把下一個字符(串)換為小寫
    ?????????*??\?u??\U?把下一個字符(串)轉換為大寫
    ??? ?? ? *? 此中
    (.*?)懶散加載
    ?????????*/
    ????????String?testStr3?
    =?"tt:google:xx";
    ????????Pattern?pattern3?
    =?Pattern.compile("(?<=:)(.*?)(?=:)");
    ????????Matcher?matcher2?
    =?pattern3.matcher(testStr3);
    ????????
    if(?matcher2.find())
    ????????????System.out.println(?matcher2.group()?)?;
    ????}
    ????
    ????
    }




    評論

    # re: java regex 正則部分高級特性使用  回復  更多評論   

    2008-05-04 10:17 by lvq810
    不錯 學習

    # re: java regex 正則部分高級特性使用  回復  更多評論   

    2008-05-04 11:50 by Norman
    這些特性都還沒有用過,多謝!

    # re: java regex 正則部分高級特性使用  回復  更多評論   

    2008-08-11 18:21 by G_G
    匹配多行

    public class Main {
    public static void main(String[] args) {
    String str = "<html>\r\n" +
    "<body>\n" +
    "<h1>title</h1>\r\n" +
    "<h2>title2</h2>\r\n" +
    "</body>\r\n" +
    "</html>\n";
    Pattern pattern = Pattern.compile("<body>[\\S\\s]*?</body>");
    Matcher matcher = pattern.matcher(str);
    while( matcher.find()){
    System.out.println("______________");
    System.out.println( matcher.group() );
    }

    }
    }


    結果:
    ______________
    <body>
    <h1>title</h1>
    <h2>title2</h2>
    </body>

    http://www.codepub.com/info/2007/02/info-11598-6.html參考
    主站蜘蛛池模板: 免费一级毛片免费播放| 全免费一级午夜毛片| 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲最大福利视频网站| 久久精品中文字幕免费| 亚洲性天天干天天摸| 日韩免费无码视频一区二区三区| 伊人久久综在合线亚洲91| 中国性猛交xxxxx免费看| 亚洲狠狠婷婷综合久久久久| 在线观看特色大片免费网站| 亚洲成av人片天堂网| 无码国产精品一区二区免费vr | 国产性生大片免费观看性| 亚洲另类激情综合偷自拍图| 久久精品私人影院免费看| 内射少妇36P亚洲区| 免费毛片a在线观看67194| 含羞草国产亚洲精品岁国产精品 | 日本XXX黄区免费看| 亚洲日本VA中文字幕久久道具| 免费高清av一区二区三区| 男人和女人高潮免费网站| 亚洲精品国产精品乱码不99| 亚洲人成在线免费观看| 亚洲午夜成人精品无码色欲| 四虎精品亚洲一区二区三区| 爽爽爽爽爽爽爽成人免费观看| 亚洲视频在线不卡| 日日AV拍夜夜添久久免费| 精品一区二区三区高清免费观看| 国产亚洲3p无码一区二区| 免费看国产精品3a黄的视频| 色屁屁www影院免费观看视频| 亚洲精品无码乱码成人| 国产高清免费视频| 一级毛片a免费播放王色电影 | 日本xxwwxxww在线视频免费| 抽搐一进一出gif免费视频| 亚洲av无码不卡久久| 久久久久噜噜噜亚洲熟女综合|