java.util.regex正規式的應用:Pattern和Matcher - 符碼記憶
文章推薦指數: 80 %
在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
顯示更多
顯示較少
延伸文章資訊
- 1哪些是範例辨識器Java 正規表示式?
底下顯示的是使用Java 正規表示式(reg ex) 的「小組件及即時文字」的部分範例辨識器。 Sample 1 顯示範例美國郵遞區號正規表示式。 辨識器名稱US Zip Code 正規表示 ...
- 2正則表示式(Regular expression) @ Penguin 工作室 - 隨意窩
- 3java.util.regex正規式的應用:Pattern和Matcher - 符碼記憶
在java 1.4之後Regular Expression正式被java所支援, 若你使用Eclipse來開發Java,下面這兩個套件可在Eclipse中幫助你測試你的Regular Expre...
- 4Java Regular Expression的學習筆記 - JWorld@TW Java論壇
Java 技巧文件- Java Regular Expression的學習筆記. ... x : 一個字元,例如"a" 表示要找含有這個字元的部分。 [abc] : 這個字元可能是a或b或c
- 5正規表示式(程式碼java版) | IT人
看了好些天的正規表示式,終於有時間來寫一篇關於它的部落格了。也是因為前段時間做標籤處理的工作用到,用正則匹配標籤規則,少寫了不少程式碼。