亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

Java正則相關的Pattern和Matcher類及遇到的坑

2020-01-20 21:33:46
字體:
來源:轉載
供稿:網友

此篇文章是記錄我在學習Java正則表達式時候學到的和遇到的坑。

先來說說 Matcher 里面的三個方法(取的結果以group()方法為例子)

  • matches():整個匹配,只有整個字符序列完全匹配成功,才返回True,否則返回False。但如果前部分匹配成功,將移動下次匹配的位置。舉個例子如果字符串為"a123",正則表達式為"/w/d/d/d",則matches()方法才返回true,換言之,就是要匹配的字符串需要跟正則表達式一一對應,字母對應字母,數字對應數字,所以稱之為完全匹配,錯一位都不行。(這里的理解花了我好長時間,網上搜到的都沒有提及,也許是我理解能力不夠)
  • find():部分匹配,從當前位置開始匹配,找到一個匹配的子串,將移動下次匹配的位置。“find()像迭代器那樣向前遍歷輸入字符串?!?--摘自《Java編程思想??聪旅娴睦又械膄ind()方法,要匹配的字符串為"a123b",正則表達式為"/d/d/d",而最后輸出結果為:123,所以稱之為部分匹配,只要有,就返回true。
  • lookingAt():部分匹配,總是從第一個字符進行匹配,匹配成功了不再繼續匹配,匹配失敗了,也不繼續匹配。lookingAt()方法介于matches()和find()方法之間。lookingAt()方法的部分匹配指從第一位開始匹配如果第一位沒有匹配到,就不再匹配,直接返回false,如果第一位匹配到了,則匹配第二位,以此類推。例子:要匹配的字符串為"a123b",正則表達式為"/w/d/d",輸出結果為"a12",很好理解,就是一位一位地匹配,匹配到了就匹配下一位。"/w/d/d"這個正則正好代表"字母數字數字",所以正好輸出結果為a12。

好了上測試代碼:

package com.wjj.utils;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** @author 作者 : 榨菜哥* @version 創建時間:2016年8月18日 上午8:47:58* 類說明:正則表達式的練習*/public class Regex {  //find方法測試  public static void find(String html) {    String regex = "http://d//d//d";    Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);    Matcher matcher = pattern.matcher(html);    System.out.print("find():");    if (matcher.find()) {      System.out.println(matcher.group());    }  }  //matches方法測試  public static void matches(String html) {    String regex = "^//w//d//d//d";    Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);    Matcher matcher = pattern.matcher(html);    System.out.print("matches():");    if (matcher.matches()) {      System.out.println(matcher.group());    }  }  //lookingAt方法測試  public static void lookingAt(String html) {    String regex = "http://w//d//d";    Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);    Matcher matcher = pattern.matcher(html);    System.out.print("lookingAt():");    if (matcher.lookingAt()) {      System.out.println(matcher.group());    }  }  public static void main(String[] args) {    //find方法測試    find("a123b");    //matches方法測試    matches("a123");    //lookingAt方法測試    lookingAt("a123b");  }}

輸出結果:

    find():123
    matches():a123
    lookingAt():a12

小結:正則表達式本身并不難,平常使用的時候只要按照規則來寫就好了。在學習中理解matches、find、和lookingAt三個方法花了我比較長的時間,一直不能理解完全匹配和部分匹配是什么意思,最后還是在stackoverflow上找到了想要的答案。

以上是個人學習的理解,有不對之處,希望給予指點。

(補充:正則表達式Pattern如果調用多次容易出問題,比如內存溢出,因為Pattern每執行一次就編譯一次正則表達式,因此建議將需要的正則表達式進行預編譯。)

正則表達式學習教程: http://deerchao.net/tutorials/regex/regex.htm ,文中作者寫得挺詳細的,并且通俗易懂。

總結

以上所述是小編給大家介紹的Java正則相關的Pattern和Matcher類及遇到的坑,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精自产拍久久久久久蜜| 97色在线播放视频| 中文日韩在线观看| 97国产suv精品一区二区62| 久久的精品视频| 97视频在线播放| 欧美午夜激情视频| 日韩成人久久久| 国产区精品在线观看| 日本精品久久中文字幕佐佐木| 亚洲电影免费观看高清完整版在线观看| 欧美网站在线观看| 欧美电影免费观看电视剧大全| 欧美激情伊人电影| 国产精品成人久久久久| 日本精品久久久| 国产精品午夜国产小视频| 国产精品专区h在线观看| 日韩成人av网址| 91美女高潮出水| 欧美激情视频在线| 日韩av大片免费看| 亚洲黄一区二区| 国产精品久久久久久久久久久不卡| 国产精品私拍pans大尺度在线| 亚洲丝袜一区在线| 日韩av在线高清| 视频直播国产精品| 亚洲高清免费观看高清完整版| 国产精品jizz在线观看麻豆| 欧美华人在线视频| 97视频在线观看亚洲| 日韩欧美亚洲综合| 2019中文字幕在线| 久久久久亚洲精品国产| 91精品中文在线| 欧美黑人视频一区| 91精品久久久久久久久不口人| 亚洲午夜精品久久久久久久久久久久| 欧美午夜www高清视频| 国产亚洲精品久久久久动| 亚洲欧美一区二区精品久久久| 57pao成人国产永久免费| 欧美视频在线视频| 在线成人一区二区| 97国产精品人人爽人人做| 欧美激情国产日韩精品一区18| 91wwwcom在线观看| 亚洲无限av看| 92福利视频午夜1000合集在线观看| 亚洲国产精品久久久久秋霞蜜臀| 神马国产精品影院av| 91九色国产社区在线观看| 亚洲欧美日韩中文视频| 97在线视频国产| 在线成人激情黄色| 久久夜色撩人精品| 久久精品久久久久久| 亚洲高清一二三区| 在线日韩中文字幕| 欧美成人午夜激情在线| 91日本在线观看| 欧美精品电影免费在线观看| 在线一区二区日韩| 日韩精品免费综合视频在线播放| 国内精久久久久久久久久人| 美女扒开尿口让男人操亚洲视频网站| 亚洲视频免费一区| 亚洲欧美精品中文字幕在线| 久久精品国产亚洲7777| 国产成人在线一区二区| 在线中文字幕日韩| 午夜精品在线观看| 午夜剧场成人观在线视频免费观看| 久久综合伊人77777蜜臀| 精品久久久国产| 精品亚洲永久免费精品| 欧美综合国产精品久久丁香| 欧美激情精品在线| 91av在线精品| 日韩电视剧免费观看网站| 97香蕉久久超级碰碰高清版| 热99精品里视频精品| 国产女同一区二区| 日韩一区二区av| 欧美综合第一页| 欧美日韩国产色| 国产ts人妖一区二区三区| 91超碰caoporn97人人| 欧美中文在线视频| 欧美专区国产专区| 成人在线视频网| 国产精品日韩精品| 亚洲人线精品午夜| 欧美色欧美亚洲高清在线视频| 91精品国产乱码久久久久久久久| 欧美久久精品一级黑人c片| 亚洲区在线播放| 亚洲欧美一区二区三区久久| 欧美性猛交xxxx免费看久久久| 欧美又大又粗又长| 国内精品国产三级国产在线专| 日韩中文字幕免费视频| 亚洲精品有码在线| 亚洲一区二区三| 国产视频久久久| 久久精品福利视频| 久久久人成影片一区二区三区| 91九色蝌蚪国产| 亲爱的老师9免费观看全集电视剧| 欧美国产视频日韩| 国模精品视频一区二区三区| 久久夜色精品国产欧美乱| 国产精品视频成人| 一本大道香蕉久在线播放29| 国产精品黄色av| 精品一区二区三区四区| 亚洲视频在线观看| 亚洲欧美中文在线视频| 日韩av电影在线播放| 欧美激情成人在线视频| 午夜精品一区二区三区视频免费看| 国产精品一区二区久久国产| 亚洲福利视频久久| 91精品国产91久久久久| 亚洲国产精彩中文乱码av| 国产精品老牛影院在线观看| 亚洲人成在线观看网站高清| 国产日产欧美精品| 久久99精品久久久久久琪琪| 亚洲精品999| 国产精品免费电影| 国产精品爽爽ⅴa在线观看| 精品国产自在精品国产浪潮| 亚洲一区二区久久久久久| 少妇av一区二区三区| 国产美女91呻吟求| 国内精品一区二区三区四区| 在线播放国产精品| 国产成人精品久久二区二区| 欧美日韩精品国产| 欧美日韩在线视频一区二区| 久久久久久av| 欧美精品激情视频| 日韩精品在线观看视频| 国产成人亚洲综合青青| 亚洲视频在线看| 亚洲自拍小视频| 中文字幕亚洲一区二区三区| 国产成人在线一区二区| 欧美国产在线视频| 欧美激情精品久久久久久大尺度| 欧美黑人xxx| 欧美韩日一区二区| 韩曰欧美视频免费观看| 91av在线精品| 成人免费视频97| 亚洲精品一区二区三区不| 中文字幕日韩在线播放| 亚洲精品中文字幕av| 国产精品羞羞答答| 国产成+人+综合+亚洲欧洲| 欧美激情视频网站| 亚洲色图欧美制服丝袜另类第一页|