讀古今文學網 > 精通正則表達式(第3版) > 使用java.util.regex >

使用java.util.regex

Using java.util.regex

通過 java.util.regex 使用正則表達式非常簡單,功能由兩個類,一個接口和一個unchecked exception組成。

就我個人來說,更喜歡簡稱前兩個為「pattern」和「matcher」,許多時候我們只會用到這兩個類。簡單地說,Pattern 對象就是編譯好的正則表達式,可以應用於任意多個字符串,Matcher對像則對應單獨的實例,表示將正則表達式應用到某個具體的目標字符串上。

Java 1.5新提供的MatchResult,它封裝了成功匹配的數據。匹配數據可以在下一次匹配嘗試之前從Matcher本身獲得,也可以提取出來作為MatchResult保存。

如果匹配嘗試所使用的正則表達式格式不正確(例如,「[oops]」的語法就不正確),就會拋出PatternSyntaxException 異常。這是一個 unchecked exception,繼承自 java.lang.IllegalAgumentException。

下面是一個完整的、詳細的程序,示範了簡單的匹配:

結果是『matched [1st] from 12 to 15.』。在本章的所有例子中,我都用斜體表示變量名。如果這樣聲明,可以省略粗體部分:

import java.util.regex.*;

它應該放在程序的頭部,和第3章的例子(☞95)一樣。

這是標準的做法,而且程序更容易管理。本章的其他程序省略了import語句。

java.util.regex使用的對象模型與其他大多數語言不同。請注意,前面例子中的Matcher對像m,是通過把 Pattern對像和目標字符串聯繫起來得到的,它用來進行實際的匹配嘗試(使用find方法),以及查詢結果(使用group、start和end方法)。

這辦法初看起來可能有點古怪,但你很快就能適應了。