• <sub id="xcyjv"></sub><nav id="xcyjv"><code id="xcyjv"><meter id="xcyjv"></meter></code></nav>
      <nav id="xcyjv"></nav>
    1. <form id="xcyjv"><th id="xcyjv"></th></form><nav id="xcyjv"><mark id="xcyjv"></mark></nav>

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

         更新時間:2019年09月09日 10:58:39   作者:jejaywong   我要評論
        這篇文章主要介紹了Java正則相關的Pattern和Matcher類及遇到的坑,本文給大家提到了Matcher 里面的三個方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

        • matches():整個匹配,只有整個字符序列完全匹配成功,才返回True,否則返回False。但如果前部分匹配成功,將移動下次匹配的位置。舉個例子如果字符串為"a123",正則表達式為"\w\d\d\d",則matches()方法才返回true,換言之,就是要匹配的字符串需要跟正則表達式一一對應,字母對應字母,數字對應數字,所以稱之為完全匹配,錯一位都不行。(這里的理解花了我好長時間,網上搜到的都沒有提及,也許是我理解能力不夠)
        • find():部分匹配,從當前位置開始匹配,找到一個匹配的子串,將移動下次匹配的位置!癴ind()像迭代器那樣向前遍歷輸入字符串! --摘自《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 = "\\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 = "\\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類及遇到的坑,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        相關文章

        最新評論

        01彩票网app
      1. <sub id="xcyjv"></sub><nav id="xcyjv"><code id="xcyjv"><meter id="xcyjv"></meter></code></nav>
          <nav id="xcyjv"></nav>
        1. <form id="xcyjv"><th id="xcyjv"></th></form><nav id="xcyjv"><mark id="xcyjv"></mark></nav>
            垦利 | 澳门澳门 | 儋州 | 枣阳 | 保定 | 新沂 | 永康 | 九江 | 许昌 | 泗阳 | 攀枝花 | 哈密 | 汕尾 | 巴音郭楞 | 汉川 | 石狮 | 宜都 | 曲靖 | 滕州 | 河南郑州 | 慈溪 | 昆山 | 吐鲁番 | 余姚 | 齐齐哈尔 | 赵县 | 聊城 | 承德 | 连云港 | 襄阳 | 灵宝 | 毕节 | 玉林 | 和县 | 陕西西安 | 株洲 | 海南 | 迪庆 | 高雄 | 蓬莱 | 燕郊 | 昌吉 | 济源 | 南安 | 新疆乌鲁木齐 | 贺州 | 齐齐哈尔 | 泉州 | 启东 | 巴彦淖尔市 | 广州 | 博尔塔拉 | 四平 | 三沙 | 涿州 | 绍兴 | 江西南昌 | 汉中 | 吴忠 | 亳州 | 固原 | 酒泉 | 澳门澳门 | 高密 | 衡水 | 保定 | 嘉兴 | 安康 | 常州 | 衢州 | 鹰潭 | 东台 | 大同 | 高雄 | 黔东南 | 韶关 | 霍邱 | 台中 | 贺州 | 醴陵 | 石河子 | 黑龙江哈尔滨 | 大连 | 乌兰察布 | 楚雄 | 台南 | 章丘 | 广汉 | 吉林长春 | 白山 | 章丘 | 改则 | 白银 | 宁夏银川 | 改则 | 禹州 | 东莞 | 广安 | 邳州 | 浙江杭州 | 海南 | 长兴 | 呼伦贝尔 | 邹城 | 江苏苏州 | 库尔勒 | 自贡 | 赣州 | 任丘 | 肥城 | 潍坊 | 乌兰察布 | 禹州 | 淄博 | 阿拉尔 | 嘉兴 | 咸阳 | 孝感 | 通化 | 宁夏银川 | 佛山 | 临汾 | 大同 | 浙江杭州 | 宁波 | 三亚 | 孝感 | 漳州 | 福建福州 | 金坛 | 永州 | 云南昆明 | 内江 | 泰安 | 明港 | 文昌 | 辽宁沈阳 | 无锡 | 和田 | 长垣 | 毕节 | 新泰 | 淮南 | 吉林长春 | 白银 | 灵宝 | 锡林郭勒 | 山东青岛 | 安阳 | 库尔勒 | 云南昆明 | 海拉尔 | 东莞 | 临沧 | 辽宁沈阳 | 柳州 | 琼中 | 漯河 | 淮南 | 宜都 | 香港香港 | 伊春 | 长兴 | 亳州 | 瓦房店 | 如东 | 嘉善 | 云南昆明 | 晋江 | 荆州 | 资阳 | 赤峰 | 漯河 | 临沂 | 黔东南 | 定州 | 燕郊 | 昭通 | 启东 | 沛县 | 张家口 | 克拉玛依 | 锦州 | 林芝 | 阿坝 | 肇庆 | 淄博 | 河南郑州 | 阿拉尔 | 乌兰察布 | 绍兴 | 晋城 | 辽宁沈阳 | 玉树 | 扬州 | 瑞安 | 株洲 | 蓬莱 | 海安 | 松原 | 宜春 | 那曲 | 山南 | 景德镇 | 泸州 | 张掖 | 包头 | 安徽合肥 | 安康 | 惠东 | 灵宝 | 果洛 | 自贡 | 丹阳 | 双鸭山 | 海东 | 浙江杭州 | 清徐 | 衢州 | 单县 | 金坛 | 江苏苏州 | 延安 | 简阳 | 灌云 | 衢州 | 新沂 | 三亚 | 甘南 | 酒泉 | 锡林郭勒 | 林芝 | 琼海 | 陇南 | 淮北 | 改则 | 扬中 | 安顺 | 玉林 | 台北 | 阿拉尔 | 庄河 | 承德 | 三亚 | 清徐 | 芜湖 | 六盘水 | 陕西西安 | 中卫 | 潍坊 | 百色 | 攀枝花 | 台山 | 香港香港 | 宁德 | 招远 | 保山 | 九江 | 眉山 | 许昌 | 海南海口 | 杞县 | 广元 | 克孜勒苏 | 阳泉 | 泗阳 | 仙桃 | 赵县 | 保定 | 浙江杭州 | 吴忠 | 台州 | 徐州 | 晋城 | 濮阳 | 巢湖 | 绵阳 | 辽阳 | 凉山 | 平凉 | 普洱 | 内蒙古呼和浩特 | 三亚 | 河源 | 云浮 | 邳州 | 丹阳 | 毕节 | 台中 | 甘南 | 嘉峪关 | 赣州 | 乌海 | 汕尾 | 揭阳 | 宜昌 | 丽江 | 辽宁沈阳 | 临沧 | 海丰 | 浙江杭州 | 金坛 | 达州 | 大丰 | 庄河 | 和县 | 定安 | 珠海 | 武夷山 | 张北 | 达州 | 鹤壁 | 安吉 | 溧阳 | 黑龙江哈尔滨 | 商洛 | 大兴安岭 | 荆州 | 包头 | 临夏 | 伊春 | 安吉 | 铜川 | 甘孜 | 张家口 | 菏泽 | 大丰 | 台南 | 惠州 | 巴中 | 阿里 | 百色 | 济南 | 鄂州 | 池州 | 菏泽 | 德宏 | 阳泉 | 凉山 | 汕头 | 东营 | 慈溪 | 沭阳 | 日喀则 | 杞县 | 德阳 | 南平 | 乌兰察布 | 温岭 | 昭通 | 新疆乌鲁木齐 | 黄南 | 甘南 | 喀什 | 珠海 | 厦门 | 天水 | 眉山 | 汕尾 | 湛江 | 庆阳 | 商丘 | 博尔塔拉 | 扬州 | 海拉尔 | 鹤壁 | 白城 | 海宁 | 乌兰察布 | 亳州 | 新乡 | 大庆 | 河南郑州 | 台湾台湾 | 通辽 | 防城港 | 万宁 | 惠东 | 六安 | 唐山 | 仁怀 | 山东青岛 | 大同 | 大连 | 荆州 | 乐平 | 定西 | 台南 | 邹城 | 襄阳 | 济源 | 丽水 | 那曲 | 河池 | 汕头 | 单县 | 乌兰察布 | 宁德 | 乐清 | 临夏 | 阿拉善盟 | 喀什 | 贵州贵阳 | 烟台 | 本溪 | 甘孜 | 济南 | 山南 | 大庆 | 昆山 | 肇庆 | 启东 | 琼海 | 嘉兴 | 赵县 | 玉林 | 燕郊 | 和田 | 正定 | 玉树 | 襄阳 | 曹县 | 汉川 | 四平 | 海南海口 | 烟台 | 黔南 | 遂宁 | 任丘 | 建湖 | 贵港 | 温岭 | 呼伦贝尔 | 衡水 | 延边 | 建湖 | 济南 | 日照 | 甘孜 | 苍南 | 松原 | 芜湖 | 汉川 | 台北 | 临海 | 新泰 | 辽宁沈阳 | 抚顺 | 正定 | 乐平 | 烟台 | 黄山 | 白银 | 黑龙江哈尔滨 | 文山 | 改则 | 陵水 | 孝感 | 安顺 | 澳门澳门 | 赣州 | 吕梁 | 江门 | 台湾台湾 | 商丘 | 中山 | 浙江杭州 | 基隆 | 保定 | 昌吉 | 昌都 | 惠州 | 梅州 | 眉山 | 灌云 | 伊犁 | 桐城 | 桐城 | 绵阳 | 赤峰 | 淄博 | 枣庄 | 临沂 | 迪庆 | 济南 | 象山 | 东台 | 丽水 | 鄂州 | 承德 | 郴州 | 盘锦 | 偃师 | 岳阳 | 吉林 | 甘孜 | 扬中 | 庆阳 | 绍兴 | 山东青岛 | 辽源 | 德宏 | 四平 | 大庆 | 青州 | 吉林 | 汕尾 | 资阳 | 塔城 | 常州 | 安康 | 青海西宁 | 海西 | 临汾 | 济南 | 东莞 | 白银 | 诸城 | 澳门澳门 | 榆林 | 丹阳 | 如东 | 偃师 | 甘孜 | 台北 | 阿勒泰 | 六盘水 | 凉山 | 怒江 | 阜阳 | 宿迁 | 泸州 | 楚雄 | 晋中 | 图木舒克 | 亳州 | 四川成都 | 防城港 | 龙岩 | 林芝 | 大庆 | 普洱 | 临沂 | 孝感 | 永康 | 长垣 | 喀什 | 和县 | 湘西 | 资阳 | 内江 | 长治 | 安岳 | 崇左 | 东营 | 襄阳 | 高雄 | 怀化 | 南阳 | 扬州 | 日照 | 固原 | 四平 | 台南 | 靖江 | 宁国 | 东营 | 单县 | 沭阳 | 随州 | 广安 | 昆山 | 孝感 | 乐山 | 天门 | 大庆 | 文山 | 伊春 | 莆田 | 南京 | 东海 | 日土 | 吴忠 | 金昌 | 湘潭 | 无锡 | 黑龙江哈尔滨 | 北海 | 铁岭 | 广州 | 赵县 | 海拉尔 | 临汾 | 池州 | 大丰 | 宜都 | 咸阳 | 醴陵 | 万宁 | 通化 | 江门 | 鹤壁 | 阜新 | 万宁 | 和田 | 新余 | 张家口 | 九江 | 台湾台湾 | 阜新 | 日土 | 铜陵 | 抚顺 | 石狮 | 武安 | 池州 | 邢台 | 乌兰察布 | 启东 | 铜仁 | 鞍山 | 黑河 | 信阳 | 改则 | 林芝 | 泰兴 | 博尔塔拉 | 通化 | 库尔勒 | 迁安市 | 汕头 | 大丰 | 宿州 | 长治 | 三河 | 喀什 | 常德 | 寿光 | 雅安 | 海安 | 山东青岛 | 莱芜 | 广元 | 海拉尔 | 自贡 | 巴音郭楞 | 十堰 | 临沧 | 楚雄 | 日喀则 | 靖江 | 吉林 | 广安 | 三门峡 | 辽源 | 四川成都 | 锦州 | 包头 | 莱州 | 神农架 | 诸城 | 任丘 | 株洲 | 桂林 | 枣阳 | 陕西西安 | 黄冈 | 漳州 | 清远 | 沧州 | 厦门 | 甘孜 | 永康 | 烟台 | 芜湖 | 咸宁 | 荣成 | 海西 | 河源 | 广饶 | 吴忠 | 阿拉尔 | 通化 | 长兴 | 江门 | 石嘴山 | 五指山 | 东营 | 中卫 | 芜湖 | 义乌 | 揭阳 | 连云港 | 新乡 | 吉林长春 | 淄博 | 乐平 | 宿迁 | 兴化 | 潮州 | 临汾 | 大兴安岭 | 简阳 | 咸宁 | 渭南 | 广汉 | 顺德 | 阿拉尔 | 黔南 | 洛阳 | 贵州贵阳 | 涿州 | 金昌 | 连云港 | 滕州 | 石河子 | 泗洪 | 晋城 | 广西南宁 | 天长 | 台山 | 双鸭山 | 洛阳 | 宁波 | 扬中 | 和田 | 馆陶 | 四平 | 保亭 | 巴彦淖尔市 | 张北 | 邳州 | 中山 | 贺州 | 河池 | 吐鲁番 | 柳州 | 大同 | 内江 | 桐乡 | 大连 | 德州 | 甘孜 | 泸州 | 黔东南 | 牡丹江 | 镇江 | 丹东 | 宣城 | 甘孜 | 龙口 | 肥城 | 海丰 | 清远 | 伊犁 | 肥城 | 无锡 | 益阳 | 泗阳 | 南京 | 临海 | 济南 | 江门 | 深圳 | 甘南 | 陇南 | 临汾 | 日土 | 克拉玛依 | 巴彦淖尔市 | 周口 | 泗阳 | 新乡 | 江西南昌 | 陇南 | 玉环 | 黄石 | 孝感 | 仙桃 | 仙桃 | 如东 | 钦州 | 诸暨 | 六盘水 | 绵阳 | 钦州 | 正定 | 威海 | 许昌 | 如东 | 滁州 | 香港香港 | 香港香港 | 商洛 | 邹平 | 楚雄 | 焦作 | 济南 | 大理 | 顺德 | 象山 | 宜宾 | 河北石家庄 | 清徐 | 沧州 | 黔西南 | 莒县 | 莒县 | 信阳 | 楚雄 | 海拉尔 | 海安 | 诸城 | 武夷山 | 张北 | 屯昌 | 惠东 | 博尔塔拉 | 吴忠 | 白山 | 普洱 | 岳阳 | 泰州 | 余姚 | 本溪 | 三沙 | 潮州 | 平凉 | 桐乡 | 佛山 | 漯河 | 如东 | 琼中 | 松原 | 明港 | 东莞 | 大兴安岭 | 林芝 | 喀什 | 济源 | 瑞安 | 鄂州 | 张家口 | 巴彦淖尔市 | 鹰潭 | 象山 | 大理 | 泸州 | 烟台 | 昆山 | 晋江 | 燕郊 | 永康 | 马鞍山 | 临汾 | 博尔塔拉 | 张北 | 贵州贵阳 | 天长 | 青海西宁 | 衡水 | 齐齐哈尔 | 桐城 | 陕西西安 | 湖州 | 武夷山 | 衡阳 | 肥城 | 南京 | 黄石 | 大同 | 桐城 | 醴陵 | 三门峡 | 万宁 | 张掖 | 鹰潭 | 厦门 | 洛阳 | 延边 | 仁寿 | 新泰 | 曲靖 | 亳州 | 咸阳 | 台北 | 桐城 | 延边 | 阿拉善盟 | 东营 | 铁岭 | 珠海 | 潜江 | 义乌 | 昭通 | 安徽合肥 | 辽阳 | 定西 | 汕头 | 明港 | 邢台 | 大庆 | 萍乡 | 邯郸 | 公主岭 | 宜都 | 基隆 | 宜昌 | 玉溪 | 秦皇岛 | 安康 | 德州 | 上饶 | 铜陵 | 新泰 | 鄂州 | 沧州 | 邢台 | 伊春 | 安顺 | 广州 | 海西 | 巴音郭楞 | 双鸭山 | 海宁 | 山南 | 铜川 | 武夷山 | 荣成 | 柳州 | 新泰 | 宜都 | 海丰 | 宜昌 | 沛县 | 五家渠 | 石狮 | 大连 | 中山 | 寿光 | 桐乡 | 泰兴 | 商洛 | 泰安 | 三亚 | 临汾 | 临猗 | 新疆乌鲁木齐 | 南阳 | 招远 | 铜川 | 庆阳 | 双鸭山 | 邢台 | 阿克苏 | 义乌 | 运城 | 滨州 | 澳门澳门 | 临夏 | 福建福州 | 百色 | 大兴安岭 | 巴中 | 六盘水 | 武夷山 | 陇南 | 巢湖 | 阳泉 | 抚州 | 鸡西 | 普洱 | 乐平 | 莱芜 | 大理 | 神木 | 荆州 | 自贡 | 唐山 | 云南昆明 | 攀枝花 | 遵义 | 滕州 | 自贡 | 昌吉 | 厦门 | 吉林长春 | 简阳 | 天长 | 德州 | 迪庆 | 义乌 | 湘潭 | 灌云 | 铜陵 | 安庆 | 海门 | 克孜勒苏 | 菏泽 | 阜新 | 保山 | 阿坝 | 江门 | 武夷山 | 海西 | 淮安 | 长治 | 诸城 | 牡丹江 | 克拉玛依 | 台州 | 博尔塔拉 | 商洛 | 平潭 | 辽阳 | 河南郑州 | 赣州 | 九江 | 雅安 | 六安 | 莒县 | 保定 | 日照 | 清徐 | 沧州 | 余姚 | 昌吉 | 齐齐哈尔 | 运城 | 楚雄 | 廊坊 | 莱州 | 咸阳 | 烟台 | 汉中 | 丹阳 | 苍南 | 辽宁沈阳 | 克孜勒苏 | 来宾 | 海门 | 阿拉尔 | 包头 | 日喀则 | 牡丹江 | 洛阳 | 陕西西安 | 宜昌 | 海拉尔 | 遵义 | 鄂州 | 淮安 | 普洱 | 山西太原 | 枣阳 | 临汾 | 姜堰 | 南通 | 启东 | 灵宝 | 余姚 | 昌都 | 清远 | 东台 | 蓬莱 | 云浮 | 泰州 | 东方 | 锡林郭勒 | 南平 | 海西 | 甘孜 | 佳木斯 | 松原 | 明港 | 宜都 | 贺州 | 锡林郭勒 | 佛山 | 巴彦淖尔市 |