程式扎記: [ Java代碼範本 ] 使用正則表示式 (Pattern & Matcher)

標籤

2010年11月10日 星期三

[ Java代碼範本 ] 使用正則表示式 (Pattern & Matcher)


轉載自 這裡
String上的正則表示式,實際上是利用了Pattern與Matcher的功能,當您呼叫String的matches()方法時,實際上是呼叫Pattern的靜態(static)方法matches(),這個方法會傳回boolean值,表示字串是否符合正則表示式。

如果您想要重覆使用您的正則表示式,則您可以使用 Pattern 的靜態方法compile()進行編譯,它會傳回一個Pattern的實例,代表您的正則表示式,之後您就可以重覆使用這個實例的matcher()方法來進行字串比對,這個方法會傳回一個Matcher 的實例, Matcher上有一些尋找符合正則式條件的方法可供操作。

以下直接來看個實例:
考慮如下字串
RateURLFromFile FilePath="D:/TestFactory/Pooling/test2.txt",OutputPath="D:/TestFactory/Pooling/log",UCount="5"
下面的範例介紹如何使用正則表示式取出項目 UCount 的值 :
代碼 (RegexSample):
  1. package gays.others;  
  2.   
  3. import java.util.regex.Matcher;  
  4. import java.util.regex.Pattern;  
  5.   
  6. /** 
  7. * @author john_k_lee 
  8. * BD : Regular Expression Demo 
  9. */  
  10. public class RegexSample {  
  11.       
  12.     public static void main(String[] args) {  
  13.         String phones1 = "RateURLFromFile FilePath=\"D:/TestFactory/Pooling/test2.txt\",OutputPath=\"D:/TestFactory/Pooling/log\",UCount=\"5\"";                        
  14.         Pattern pattern = Pattern.compile(".*UCount=\"(\\d*)\"");  
  15.           
  16.         Matcher matcher = pattern.matcher(phones1);  
  17.         if(matcher.find()) {  
  18.             System.out.println("UCount="+matcher.group(1));  
  19.         }else{  
  20.             System.out.println("No UCount Item!");  
  21.         }  
  22.     }  
  23. }  
執行結果 :
UCount=5
This message was edited 1 time. Last update was at 10/11/2010 17:10:15

沒有留言:

張貼留言

網誌存檔

關於我自己

我的相片
Where there is a will, there is a way!