日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java正則表達式Pattern和Matcher原理詳解

瀏覽:95日期:2022-09-05 11:46:31

這篇文章主要介紹了Java正則表達式Pattern和Matcher原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

基本使用

Scanner中的使用正則表達式

//Scanner 支持的分組 Scanner cin=new Scanner('red a bbc').useDelimiter('s*as*'); System.out.println(cin.next()); System.out.println(cin.next());out:redbbc

等同于下面代碼

//等于 正則Scanner cin2=new Scanner('red a bbc');cin2.findInLine('s*'); // findLine 允許存在多個,match()為最終需要匹配的字符串MatchResult result = cin2.match();for (int i = 0; i < result.groupCount(); i++) { System.out.println(result.group(i));}

Pattern:

//基本匹配 boolean b = Pattern.matches('a*b', 'aaaab'); System.out.println(b);

String的aplit的實現

//按照數字分割 Pattern p=Pattern.compile('d+'); String[] str=p.split('好456456像:0532214是'); for (int i = 0; i < str.length; i++) { System.out.println(str[i]); }

一般使用Pattern.matches(String regex,CharSequence input)是一個靜態方法,用于快速匹配字符串,該方法適合用于只匹配一次,且匹配全部字符串.

Java代碼示例:

Pattern.matches('d+','2223');//返回true Pattern.matches('d+','2223aa');//返回false,需要匹配到所有字符串才能返回true,這里aa不能匹配到 Pattern.matches('d+','22bb23');//返回false,需要匹配到所有字符串才能返回true,這里bb不能匹配到 Pattern p=Pattern.compile('d+'); Matcher m=p.matcher('22bb23'); m.pattern();//返回p 也就是返回該Matcher對象是由哪個Pattern對象的創建的

重點:

matches 方法嘗試將整個輸入序列與該模式匹配。

lookingAt 嘗試將輸入序列從頭開始與該模式匹配。

find 方法掃描輸入序列以查找與該模式匹配的下一個子序列。

// matches()對整個字符串進行匹配,只有整個字符串都匹配了才返回true Pattern p=Pattern.compile('d+'); Matcher m=p.matcher('22bb23'); m.matches();//返回false,因為bb不能被d+匹配,導致整個字符串匹配未成功. Matcher m2=p.matcher('2223'); m2.matches();//返回true,因為d+匹配到了整個字符串 // lookingAt()對前面的字符串進行匹配,只有匹配到的字符串在最前面才返回true Pattern p1=Pattern.compile('d+'); Matcher m3=p1.matcher('22bb23'); m.lookingAt();//返回true,因為d+匹配到了前面的22 Matcher m4=p1.matcher('aa2223'); m2.lookingAt();//返回false,因為d+不能匹配前面的aa // find()對字符串進行匹配,匹配到的字符串可以在任何位置. Pattern p2=Pattern.compile('d+'); Matcher m5=p2.matcher('22bb23'); m.find();//返回true Matcher m6=p2.matcher('aa2223'); m2.find();//返回true Matcher m7=p2.matcher('aa2223bb'); m3.find();//返回true Matcher m8=p2.matcher('aabb'); m4.find();//返回false

Mathcer.start()/ Matcher.end()/ Matcher.group()

當使用matches(),lookingAt(),find()執行匹配操作后,就可以利用以上三個方法得到更詳細的信息.

start()返回匹配到的子字符串在字符串中的索引位置. end()返回匹配到的子字符串的最后一個字符在字符串中的索引位置. 即為最后位置加一 group()返回匹配到的子字符串

Java代碼示例:

Pattern p=Pattern.compile('d+'); Matcher m=p.matcher('aaa2223bb'); m.find();//匹配2223 m.start();//返回3 m.end();//返回7,返回的是2223后的索引號 m.group();//返回2223 Mathcer m2=p.matcher('2223bb'); m2.lookingAt(); //匹配2223 m2.start(); //返回0,由于lookingAt()只能匹配前面的字符串,所以當使用lookingAt()匹配時,start()方法總是返回0 m2.end(); //返回4 m2.group(); //返回2223 Matcher m3=p.matcher('2223'); //如果Matcher m3=p.matcher('2223bb'); 那么下面的方法出錯,因為不匹配返回falsem3.matches(); //匹配整個字符串 m3.start(); //返回0m3.end(); //返回3,原因相信大家也清楚了,因為matches()需要匹配所有字符串 m3.group(); //返回2223

說了這么多,相信大家都明白了以上幾個方法的使用,該說說正則表達式的分組在java中是怎么使用的.

start(),end(),group()均有一個重載方法它們是start(int i),end(int i),group(int i)專用于分組操作,Mathcer類還有一個groupCount()用于返回有多少組.

Java代碼示例:

Pattern p=Pattern.compile('([a-z]+)(d+)'); Matcher m=p.matcher('aaa2223bb'); m.find(); //匹配aaa2223 m.groupCount(); //返回2,因為有2組 m.start(1); //返回0 返回第一組匹配到的子字符串在字符串中的索引號 m.start(2); //返回3 m.end(1); //返回3 返回第一組匹配到的子字符串的最后一個字符在字符串中的索引位置. m.end(2); //返回7 m.group(1); //返回aaa,返回第一組匹配到的子字符串 m.group(2); //返回2223,返回第二組匹配到的子字符串

驗證手機號

// 驗證手機號 Pattern compile = Pattern.compile('^[1][3,4,5,7,8][0-9]{9}$'); Matcher matcher1 = compile.matcher('15071089603'); while(matcher1.find()){ System.out.println(matcher1.group()); }/** * 驗證手機號碼 * * 移動號碼段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147、182 * 聯通號碼段:130、131、132、136、185、186、145 * 電信號碼段:133、153、180、189、177 * */ String regex = '^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,1,2,5-9])|(177))d{8}$';

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品一二三| 日韩av福利| 日韩成人精品一区| 不卡中文一二三区| 国产精品流白浆在线观看| 另类综合日韩欧美亚洲| 国产亚洲精品v| 一区二区三区国产在线| 欧美综合社区国产| 成人在线黄色| 婷婷亚洲五月色综合| 日韩影院在线观看| 日韩高清不卡在线| 精品久久一区| 国产婷婷精品| 日韩高清欧美激情| 电影91久久久| 日韩视频精品在线观看| 欧美一级全黄| 日韩欧美看国产| 视频一区视频二区在线观看| 日韩一区二区三区免费视频| 免费在线日韩av| 日韩毛片在线| 亚洲1区在线| 国产成人精品免费视| 欧美日韩黑人| 欧美午夜三级| 欧美色图一区| 日本午夜精品久久久久| 精品无人区麻豆乱码久久久| 亚洲精品网址| 久久不见久久见免费视频7| 免费欧美一区| 国产精品一区二区三区www| 久久久久久久久丰满| 视频精品一区二区| 精品伊人久久| 亚洲色图综合| 免费污视频在线一区| 日本午夜精品视频在线观看| 亚洲午夜91| 红杏一区二区三区| 中文字幕免费精品| 欧美日韩水蜜桃| 捆绑调教美女网站视频一区| 丝袜a∨在线一区二区三区不卡| 麻豆久久久久久| 日韩中文字幕区一区有砖一区| 国产一区二区三区四区五区传媒| 亚洲欧洲av| 午夜国产精品视频免费体验区| 国产精品日韩精品在线播放 | 日韩电影免费网址| 亚洲精品自拍| 日韩精品看片| 国产乱码精品一区二区亚洲| 视频在线在亚洲| 成人精品中文字幕| 精品国产麻豆| 国产免费av一区二区三区| 蜜桃视频在线观看一区二区| 91精品一区国产高清在线gif | 日韩视频一区| 日韩在线精品| 精品九九在线| 国产精久久久| 日韩高清不卡一区二区| 性色av一区二区怡红| 国产在线|日韩| 日韩视频1区| 亚洲成人三区| 国产aⅴ精品一区二区四区| 国产午夜久久av| 婷婷综合成人| 亚洲精品美女| 蜜桃视频第一区免费观看| 久久精品国产99久久| 麻豆mv在线观看| 精品午夜视频| 麻豆免费精品视频| 91欧美日韩在线| 一区二区三区四区在线观看国产日韩| 一区免费视频| 一区在线视频观看| 亚洲深爱激情| 久久国产精品久久久久久电车| 久久亚洲成人| 欧美a级片一区| 美女少妇全过程你懂的久久| 99视频精品视频高清免费| 99成人超碰| 99精品小视频| 欧美a级片一区| 亚洲永久字幕| 亚洲国产日韩欧美在线| 欧美成人综合| 狠狠久久婷婷| 亚洲午夜免费| 国产日韩一区二区三区在线播放| 欧美日韩精品一区二区三区在线观看| 日本强好片久久久久久aaa| 91成人在线网站| 国产精品一区2区3区| 麻豆国产精品| 在线精品亚洲欧美日韩国产| 在线日韩视频| 中文国产一区| 亚洲三区欧美一区国产二区| 97精品久久| 久久精品二区亚洲w码| 捆绑调教日本一区二区三区| 日韩欧美精品综合| 午夜国产欧美理论在线播放 | 欧美男人天堂| 亚洲精品一区二区在线看| 日本 国产 欧美色综合| 清纯唯美亚洲综合一区| 九九久久国产| 亚洲电影在线| 中文日韩在线| 欧美日韩一区二区国产| 97视频热人人精品免费| 午夜免费一区| 国产亚洲欧美日韩精品一区二区三区| 精品国产一区二区三区性色av| 亚洲人成在线网站| 日韩专区一卡二卡| 精品一区视频| 亚洲精品a级片| 日韩国产在线一| 午夜av不卡| 亚洲视频二区| 伊人久久国产| 日韩精品国产欧美| 麻豆国产精品视频| 偷拍欧美精品| 国产剧情在线观看一区| 久久中文亚洲字幕| 国产三级一区| 红桃视频国产精品| 麻豆91小视频| 亚洲性视频在线| 日韩精品dvd| 人人精品久久| 久久中文字幕av| 六月丁香综合在线视频| 亚洲欧美日韩在线观看a三区| 老鸭窝一区二区久久精品| 精品1区2区3区4区| 国产伦精品一区二区三区千人斩 | 久久久久久美女精品| 日韩精品免费视频一区二区三区 | 999久久久91| 日韩国产在线观看一区| 三上悠亚国产精品一区二区三区| 综合一区在线| 91精品国产自产在线观看永久∴| 91麻豆精品激情在线观看最新| 亚洲91精品| 精品一区二区三区中文字幕视频| 蜜臀av国产精品久久久久 | 国产成人精品一区二区免费看京| 免费精品视频最新在线| 日韩中文字幕高清在线观看| 国产欧美综合一区二区三区| 午夜欧美精品| 中文在线资源| 欧美黄色精品| 欧美日韩调教| 国产精品免费看| 国产麻豆久久| 91中文字幕精品永久在线| 久久av影院| 日本精品在线播放| 三级在线观看一区二区| 欧美精品一区二区三区精品| xxxxx性欧美特大| 久久三级毛片| 国产精品99精品一区二区三区∴ | 免费看精品久久片| 99久精品视频在线观看视频| 精品亚洲免a| 欧美aaaaaa午夜精品| 欧美色综合网| 日韩欧美美女在线观看| 国产婷婷精品| 午夜久久免费观看| 国产精品久久久久av电视剧| 国产一区不卡| 国产一区二区色噜噜| 国产精品白浆| 久久不见久久见免费视频7| 日本精品一区二区三区在线观看视频| 久久亚洲美女| 91久久视频| 野花国产精品入口| 国产美女一区| 丝袜a∨在线一区二区三区不卡| 亚洲综合国产|