正則表示式(Regular expression) @ Penguin 工作室 - 隨意窩

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

先前我們比對字串時,必須分別針對字串開頭、結尾、長度等等做比較,判斷是否符合我們的規則,而正則表示式簡單來說,就是利用一個事先定義的表示式字串,來代表所有的規則 ... Penguin工作室,一起JAVA吧!曾經以為這輩子不會走上寫程式這條路。

但當我逐漸創作出更多作品,我知道我樂在其中。

沒錯,寫程式是創作。

發揮你的創意DNA,一起JAVA吧!日誌相簿影音好友名片 201202212318正則表示式(Regularexpression)?JAVA進階篇       我們在前面的章節已經有說明過字串的比對處理、檔案的FileFilter等等檢核字串或檔名規則的方法,這邊要說明另一種更彈性、更進階的正則表示式(Regularexpression)。

支援的正則表示式相關類別都在java.util.regex.Pattern類別底下。

       先前我們比對字串時,必須分別針對字串開頭、結尾、長度等等做比較,判斷是否符合我們的規則,而正則表示式簡單來說,就是利用一個事先定義的表示式字串,來代表所有的規則,這樣一來就不用分別對所有的項目做比較。

正則表示式的使用方式如下:        Stringstr="";        str.matches(""); 第1行宣告一個文字,代表要檢核的文字。

第2行使用matches()並帶入正則表示式來回傳布林值表示是否符合規則。

       以下就來看看如何設定正則表示式。

       首先是字元的設定,如下: [abc] a或b或c [^abc] 非a、b、c的其它字元 [a-zA-Z] a到z或A到Z [a-d[m-p]] a到d及m到p [a-z&&[def]] d或e或f [a-z&&[^bc]] 除了b與c之外,a到z所有字元 [a-z&&[^m-p]] 除了m到p之外,a到z所有字元        數量的設定如下: A? A出現一次或零次 A* A出現零次或多次 A+ A出現一次或多次 A{n} A出現n次 A{n,} A出現至少n次 A{n,m} A出現n-m次        另外以下為定義的類別: . 符合任一字元 \d 等於[0-9]數字 \D 等於[^0-9]非數字 \s 等於[\t\n\x0B\f\r]空白字元 \S 等於[^\t\n\x0B\f\r]非空白字元 \w 等於[a-zA-Z_0-9]數字或是英文字 \W 等於[^a-zA-Z_0-9]非數字與英文字        因此如果我們要檢核手機號碼,規則為10位數字,就可以設定[0-9]{10},表示範圍在0-9之間,且出現次數為10次,如果是市話號碼,規則為4位數字加上『-』符號再加上4位數字,就可以設定[0-9]{4}-[0-9]{4},執行以下程式就可以測試結果:    Stringstr1="0900000000";    System.out.println(str1.matches("[0-9]{10}"));    Stringstr2="0000-0000";    System.out.println(str2.matches("[0-9]{4}-[0-9]{4}"));        若是要檢核電子信箱,則可以用類似下列的範例:    Stringstr="[email protected]";    System.out.println(str.matches("[a-zA-Z0-9._]+@([a-zA-Z0-9_]+.[a-zA-Z0-9_]+)+"));        表示a-z或是A-Z或是0-9或是『.』或是『_』出現一次或多次,加上『@』符號,再加上a-z或是A-Z或是0-9或是『_』加上『.』符號一組至多組。

劉蓁/Xuite日誌/回應(0)/引用(0)沒有上一則|日誌首頁|沒有下一則回應 全部展開|全部收合 關鍵字 jane17512001's新文章視窗程式JavaSwing-常用元件視窗程式JavaSwing-基本設定及LayoutXMPP即時通訊Queue(佇列)、ConcurrentLinkedQueue遞迴(Recursion)以及求解最大公因數log4j日誌記錄正則表示式(Regularexpression)HTTP連線(HttpURLConnection、HttpClient)ResourceBundleFTP檔案傳輸(apache.common.net.ftp) BloggerAds



請為這篇文章評分?