java.util.regex正規式的應用:Pattern和Matcher - 符碼記憶

文章推薦指數: 80 %
投票人數:10人

在java 1.4之後Regular Expression正式被java所支援, 若你使用Eclipse來開發Java,下面這兩個套件可在Eclipse中幫助你測試你的Regular Expression。

Eclipse ... 跳到主要內容 java.util.regex正規式的應用:Pattern和Matcher 取得連結 Facebook Twitter Pinterest 以電子郵件傳送 其他應用程式 1月15,2009 RegularExpression,中文稱:正規式、正規表示式、正則表示式, 在字串的比對上是無比強大的工具, 在java1.4之後RegularExpression正式被java所支援, 若你使用Eclipse來開發Java,下面這兩個套件可在Eclipse中幫助你測試你的RegularExpression。

Eclipse好用套件:RegularExpressionTester Eclipse的plugin,http://myregexp.com/eclipsePlugin.html 而若你需要的是線上的測試工具,可以參考: OnlineRegularExpressionTester:線上正規式測試驗證工具網站 一般我們常用的字串操作有很多 譬如說檢查字串中是否包含某個字串 這點可以利用contains來達到 也可以利用RegularExpression來比對 除此之外RegularExpression也可以達到更多判別 例如說字串是不是由什麼特定字串開始或結束 而更強大的功能在於能將符合需求的字串濾出 只要掃過一次就能得到所有符合的項目真的非常方便 如果想得到更詳細的介紹請看RegularExpression簡介 語法的介紹則可參考JavaRegularExpression的學習筆記[精華] 以下的程式簡單地示範了幾個常用的method: packagedemo.regex; importjava.util.regex.Matcher; importjava.util.regex.Pattern; publicclassRegex{ publicstaticvoidmain(String[]args){ //測試testString中是否包含了aa StringtestString="ABCaaabcaac"; System.out.println("String.contains():\t"+testString.contains("aa")); //和上面目的相同,但運用了regularexpression //而這其實是利用了Pattern的靜態方法matches() System.out.println("String.matches():\t"+testString.matches(".*aa.*")); System.out.println("Pattern.matches():\t"+Pattern.matches(".*aa.*",testString)); System.out.println(); //如果要用相同的regularexpression測試很多資料 //可以使用Pattern的靜態方法compile()來編譯 //之後就可以重覆使用這個pattern的matcher()方法來進行字串比對 StringtestString2="aababcAc"; Patternpattern=Pattern.compile(".*aa.*"); Matchermatcher=pattern.matcher(testString); System.out.println("matcher.matches():\t"+matcher.matches()); matcher=pattern.matcher(testString2); System.out.println("matcher.matches():\t"+matcher.matches()); System.out.println(); //另外Matcher中還有很多方法可以使用 //除了用matcher.matches()可以比對字串是不是符合regularexpression //也可以利用matcher.lookingAt()比對字串是不是某個regularexpression開頭 pattern=Pattern.compile("aa"); matcher=pattern.matcher(testString); System.out.println("matcher.matches():\t"+matcher.lookingAt()); matcher=pattern.matcher(testString2); System.out.println("matcher.matches():\t"+matcher.lookingAt()); System.out.println(); //想取出字串中符合的區段則可以運用matcher //例如想從下面四個號碼找出手機的格式 //就可以用matcher.find()及matcher.group()來取出符合的項目 StringtestString3="0911-111111,02-22222222,0922-222222,03-33333333"; pattern=Pattern.compile("\\d{4}-\\d{6}"); matcher=pattern.matcher(testString3); while(matcher.find()){ System.out.println("matcher.group():\t"+matcher.group()); } } } 而輸出的結果如下: String.contains():true String.matches():true Pattern.matches():true matcher.matches():true matcher.matches():true matcher.matches():false matcher.matches():true matcher.group():0911-111111 matcher.group():0922-222222 關鍵字:RegularExpression,Pattern,Matcher,正規式,正規表示式,正則表示式 參考資料: JAVAAPI:java.util.regex JavaGossip:Pattern、Matcher RegularExpression簡介 JavaRegularExpression的學習筆記[精華] Eclipse好用套件:RegularExpressionTester OnlineRegularExpressionTester:線上正規式測試驗證工具網站 Java 取得連結 Facebook Twitter Pinterest 以電子郵件傳送 其他應用程式 留言 這個網誌中的熱門文章 【汽機車燃料費】2022/111年度信用卡回饋/分期整理! 7月02,2022 每年自用汽機車燃料費於7月開徵,2022年/111年度繳汽機車燃料費信用卡持續更新!部份銀行有免手續費及分期零利率免息優惠!分期的好處是可以延遲付款多賺利息,還有少數幾家銀行有紅利/現金回饋!各式稅金繳納攻略以下文章皆為長期連結,於當年度繳納前會更新當年度優惠4月:牌照稅5月:綜合所得稅5月:房屋稅7月:汽機車燃料使用費11月:地價稅 繼續閱讀» 【繳稅繳費攻略】繳納工具+回饋懶人包(超商/APP/線上)! 7月02,2022 大家每月都有各式費用需要繳吧?現在各式費用除了自動扣繳部份信用卡享回饋,在超商刷卡/APP/電子票證也能賺回饋,另外特定費用透過APP/官方網頁/實體門市,也有機會搭配指定活動賺回饋唷! 繼續閱讀» 【信用卡排行榜】2022國內外必辦現金回饋信用卡推薦! 7月07,2022 近幾年現金回饋信用卡非常熱門,國內消費輕鬆拿3%、國外4%起跳,網路購物/行動支付/電子票證加值最高10%,繳水電等帳單也能賺回饋!若你是筆筆都要賺的現金回饋族,看這篇就對了!(2022持續更新中) 繼續閱讀» 【中信ALLME卡】PChome最高12%(原8%)+辦卡最高800! 7月05,2022 中國信託與PChome、中華電信聯手推出ALLME卡!國內1%國外2.2%無上限、電信/電商享8%、生活/繳費享6%,還有上市最高12%!最高新戶500/新卡100/數位綁定禮100,再享PChome綁定禮100/生日禮100! 繼續閱讀» 【永豐大戶數位帳戶】2022下半年30萬1.3%+20次跨轉提! 7月01,2022 2022年下半年 永豐大戶DAWHO數位帳戶權益已更新!活儲利率調升為1.3%、不過可存額度調降為30萬。

每月免費跨轉跨提依資格最高共20次。

開完戶還能再搭配賺大戶信用卡、幣倍卡等超高回饋!【永豐大戶數位帳戶】2022下半年30萬1.3%+20次跨轉提!【永豐大戶信用卡】國內2%國外3%通路8%+新增加值5%! 繼續閱讀» 【國泰CUBE卡】隨選3%+OPEN錢包12%+icashPay/加值10%! 7月02,2022 國泰CUBE隨選回饋信用卡,主打隨選由你三大權益天天由你切換、消費有理指定消費3%起回饋無上限,且每天可依需求切換,很適合在指定通路大額消費!另外OPEN錢包12%、icashPay及icash自動加值皆享10%! 繼續閱讀» 【多益成績】TOEIC多益成績分數查詢、計算標準與換算對照表 12月06,2020 這年頭多益測驗是非常盛行的英文檢定,主要是因為它是世界上知名且以商業、職場為準則的英文能力測驗指標。

這篇主要整理多益的分數計算方式,並整理多益與其他英文檢定的成績換算對照表。

(本文已於2018.07.08重新修訂部份內容)多益成績查詢請至:https://www.examservice.com.tw/Member/Index 繼續閱讀» 【銀行代碼查詢】3碼銀行代碼列表、7碼分行代碼查詢 12月11,2021 大家對銀行/金融機構的3碼代碼應該都非常熟悉(例如郵局為700)。

不過除了3碼的銀行代碼外,偶爾我們也需要查詢7碼的分行代碼!像我自己就遇過在郵局填匯款單時需要分行名稱及7碼代碼,另外某些銀行在申請由銀行帳戶自動扣繳信用卡卡費時也會需要!這篇就幫大家整理怎麼查詢「3碼銀行代碼及7碼分行代碼」! 繼續閱讀» 【彰銀My樂】6Pay平日3%六日6%+6大通路3.5%=最高9.5%! 7月02,2022 彰化銀行My樂現金回饋卡除原始0.5%及六大通路加碼最高3.5%回饋外,下半年6Pay活動簡化,每月1號登錄可享指定6Pay平日3%六日6%!兩者combo國外消費最高9.5%、國內消費最高9%! 繼續閱讀» 【foodpanda熊貓攻略】7月最新優惠碼(免運/外送/自取)! 7月06,2022 不管網購或實體通路,除了店家自己的優惠,也可以再搭配支援工具折扣及回饋!熊貓外送foodpanda也不例外,自取折扣+指定店家優惠碼+信用卡回饋combo起來超划算!先前曾訂過折下來比5折還便宜! 繼續閱讀» 文章列表 2022 163 七月 49 六月 29 五月 19 四月 25 三月 10 二月 6 一月 25 2021 82 十二月 15 十一月 7 十月 4 九月 6 八月 10 七月 3 六月 9 五月 3 四月 6 三月 13 二月 2 一月 4 2020 48 十二月 4 十一月 5 十月 2 九月 1 八月 3 七月 4 六月 5 五月 1 四月 7 三月 2 二月 5 一月 9 2019 89 十二月 7 十一月 2 十月 7 九月 10 八月 4 七月 12 六月 11 五月 7 四月 8 三月 13 二月 6 一月 2 2018 115 十二月 15 十一月 23 十月 14 九月 14 八月 10 七月 16 六月 7 四月 9 三月 1 二月 1 一月 5 2017 28 十二月 2 十一月 2 九月 2 八月 2 七月 3 六月 2 五月 6 四月 1 三月 3 二月 2 一月 3 2016 54 十二月 4 十一月 2 十月 6 九月 5 八月 9 七月 4 六月 9 五月 7 四月 2 三月 2 一月 4 2015 62 十二月 3 十一月 6 十月 5 九月 6 八月 4 七月 11 六月 5 五月 17 三月 2 二月 1 一月 2 2014 77 十一月 4 十月 13 九月 7 八月 10 七月 3 六月 22 五月 4 四月 5 三月 5 二月 1 一月 3 2013 58 十二月 7 十一月 6 十月 4 九月 9 八月 4 七月 9 六月 1 五月 2 四月 2 三月 3 二月 4 一月 7 2012 101 十二月 6 十一月 6 十月 9 九月 7 八月 6 七月 5 六月 7 五月 7 四月 15 三月 13 二月 11 一月 9 2011 46 十二月 11 十一月 17 十月 3 九月 7 八月 1 六月 2 五月 1 三月 1 二月 1 一月 2 2010 26 十二月 5 十一月 1 十月 2 九月 3 八月 1 七月 9 六月 1 五月 1 四月 2 二月 1 2009 45 十二月 7 十一月 6 十月 1 九月 2 八月 3 七月 1 六月 5 五月 1 四月 4 三月 1 二月 8 一月 6 JavaCodingStyle、CodeConventions Java:日期時間格式化輸出入處理:Date、Calendar、SimpleDateFormat 利用Jakarta.Commons.HttpClient抓取網頁、網站(Parser) java.util.regex正規式的應用:Pattern和Matcher Java:JSONinJava的簡單程式範例 在blogger上使用Lightbox 2008 37 十二月 7 十一月 11 十月 10 九月 8 七月 1 顯示更多 顯示較少



請為這篇文章評分?