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

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

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

    posts - 8,  comments - 6,  trackbacks - 0

    2.3  在一個String中查找子串模式

    本章前面的“使用正則表達式來搜索文本”一節說明了如何使用regex模式來比較一個String是否匹配(或部分匹配)一個給定的模式。這里,匹配是從輸入字符串的第一個字符開始的。在本節中,將使用regex模式在一個String中查找多個匹配值。舉例來說,可以在一篇文檔中搜索查找嵌入在正文中的任何URL。首先,需要創建一個匹配URL的模式字符串。下面給出一個能匹配大多數URL的模式:

    String urlString = "(http|https|ftp)://[/\\w\\.\\-\\+\\?%=&;:,#]+";

    此模式并不能有效地描述URL,因為它也匹配一些包含錯誤語法的URL字符串,如http://////////。在一些情況下它也會捕獲額外的字符,如可能緊跟在嵌入到正文中的URL之后的逗號或分號。這些字符有時會出現在URL中,但是如果URL出現在正文中,這些字符可能不希望URL的一部分而被捕獲。但該模式相對簡短并且能夠很好地用于搜索文本文件中包含的URL。此模式表達式的各部分如下所示:

    ●  http、https或ftp 
    ●  ://
    ● / 0-9 A-Z a-z _ . - + ? % = & ; : , #中的一個或多個字符
    我們知道,Matcher可以將一個模式應用到一個特殊的輸入字符串。為了使用前面定義的urlString模式查找多個子串匹配,必須調用Matcher的find方法。為了在輸入字符串內找到每一個出現的模式,可以重復調用find方法來查找下一個匹配。當沒有更多的匹配時,find方法返回false。為了獲取當前匹配的位置,可以使用start和end方法來獲得索引值以在輸入文本中的范圍內進行匹配。以下的代碼將顯示數據內找到的所有URL:

    String urlString = "(http|https|ftp)://[/\\w\\.\\-\\+\\?%=&;:,#]+";
    Pattern urlPattern = Pattern.compile(urlString);
    // get the data (somehow)
    String data = getStringData();
    // get a matcher for the data
    Matcher urlMatcher = urlPattern.matcher(data);
    // iterate through the matches
    while (urlMatcher.find()) {
    int startIndex = urlMatcher.start();   // index of start
    int endIndex = urlMatcher.end();        // index of end + 1
    // retrieve the matching substring
    String currentMatch = data.substring(startIndex, endIndex);
    System.out.println(currentMatch);
    }

    此代碼將不能匹配相對的URL(如/images/picture.jpg),這些URL常常出現在HTML文件或省略前置http://的不完整的URL(如wickedcooljava.com)中。為了知道何時應該將某字符串作為相對URL來對待,程序必須理解HTML文件的結構(使用regex也可完成此任務,但是要更困難些)。需要知道每個匹配的上下文,為此必須在理解其語法的基礎上分析文件。若想了解更多的信息,請參考第3章。

    posted on 2008-12-09 09:29 ♂游泳的魚 閱讀(442) 評論(1)  編輯  收藏

    FeedBack:
    # re: 2.3 在一個String中查找子串模式
    2014-12-09 15:03 | 獵頭招聘
    在一個String中查找子串模式看了好幾篇還是不太懂,看來要回去看第三章。  回復  更多評論
      

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


    網站導航:
     

    <2014年12月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 日韩在线看片免费人成视频播放| 亚洲电影免费在线观看| 国产桃色在线成免费视频| 亚洲一区综合在线播放| 免费一级国产生活片| 亚洲人成色77777在线观看| 一二三四视频在线观看中文版免费 | 成人免费无码大片a毛片软件| 亚洲综合色区中文字幕| 一级女性全黄生活片免费看| 免费A级毛片无码A∨免费| 久久av无码专区亚洲av桃花岛| 国产成人久久AV免费| 国产在线19禁免费观看| 特级av毛片免费观看| 免费电影在线观看网站| 亚洲日韩AV无码一区二区三区人| 好吊妞在线成人免费| 亚洲精品视频在线| 久久久久国产精品免费看| 亚洲色欲或者高潮影院| 我想看一级毛片免费的| 男女猛烈激情xx00免费视频| 亚洲人成网站在线观看播放| 99精品在线免费观看| 亚洲人成未满十八禁网站| 亚洲精品国产V片在线观看| 男女午夜24式免费视频| 亚洲av无码一区二区三区天堂古代 | 亚洲AV成人精品一区二区三区| 亚洲AV中文无码乱人伦| 国产精品亚洲精品久久精品 | 最近中文字幕免费mv视频8| 免费无遮挡无遮羞在线看| 亚洲丁香色婷婷综合欲色啪| 最近中文字幕mv免费高清视频7| 一级做a爱过程免费视| 亚洲理论片在线中文字幕| 亚洲成av人片一区二区三区| 四虎国产精品永久免费网址| 亚洲欧美日韩中文无线码|