在Java開發中,有時會遇到一些比較別扭的規則從字符串中提取子字符串,規則無疑是寫正則表達式來表達了,那按照正則來提取子字符串就會用到java.util.regex包。
java.util.regex是一個用正則表達式所訂制的模式來對字符串進行匹配工作的類庫包。 它包括兩個類:Pattern和Matcher 。
Pattern: 一個Pattern是一個正則表達式經編譯后的表現模式。
Matcher: 一個Matcher對象是一個狀態機器,它依據Pattern對象做為匹配模式對字符串展開匹配檢查。
首先一個Pattern實例訂制了一個所用語法與PERL的類似的正則表達式經編譯后的模式,然后一個Matcher實例在這個給定的Pattern實例的模式控制下進行字符串的匹配工作。
1 package com.founder.mrp.util; 2 3 import java.util.regex.Matcher; 4 import java.util.regex.Pattern; 5 /** 6 * 與String相關的工具方法集 7 * @author Jimmy 8 * 9 */ 10 public class StringUtil { 11 12 public static String getMatcher(String regex, String source) { 13 String result = ""; 14 Pattern pattern = Pattern.compile(regex); 15 Matcher matcher = pattern.matcher(source); 16 while (matcher.find()) { 17 result = matcher.group(1); 18 } 19 return result; 20 } 21 22 public static void main(String[] args) { 23 String url = "http://172.12.1.123/test.txt"; 24 String regex = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"; 25 // String regex = "(\\d{1,3}\\.){1,3}(\\d{1,3})"; 26 System.out.println(getMatcher(regex,url)); 27 } 28 29 }
參考資料:
Pattern、Matcher: http://www.cnblogs.com/playing/archive/2011/03/15/1984943.html
