官术网_书友最值得收藏!

6.4 正則表達式

正則表達式的操作方式是通過模式(pattern)來匹配(match)的,而不是通過字符串的內容進行查詢。

正則表達式操作的資源定義在java.util.regex包中,主要的類型包括Pattern和Matcher類。其中,Pattern類定義匹配的模式,Matcher類根據模式進行匹配操作,并根據需要處理匹配的結果。

下面的代碼使用簡單的模式來匹配手機號碼。

可以修改num的內容來觀察代碼的運行結果。當指定模式時,首先第一個字符必須是1,然后是0~9的數字,{10}?的含義是前一條規則必須有10次,即在1的后面必須有10個數字,這樣就保證了從1開始的11位數字規則,也就是手機號碼格式。

下面了解一些常用的匹配規則。

首先,如果需要指定某個字符,可以直接定義。對于一些特殊字符,可以使用轉義字符進行轉義。

[]定義一個字符,可以指定允許的字符范圍。如[0-9]表示一位數字,[a-z]表示一個小寫字母,[a-zA-Z]表示一個大寫或小寫字母,[aeiou]表示只是5個字母中的一個。此外,如果不允許某個字符,可以在規則前使用^符號,如[^AB]規則表示不允許出現A或B字符。

單詞字符(包括字母、數字和下畫線),可以使用\w轉義,不允許單詞字符時使用\W轉義。如[\\w]{6,15}?表示6~15位的單詞字符。

下面的代碼會判斷一個E-mail地址格式是否正確。

在這個規則中,^符號表示必須以[a-zA-Z0-9]中的內容開頭,$符號必須以前一條規則作為結束,這是指\\w+內容,即字母、數字和下畫線。規則中的+符號表示前一條規則至少應用一次,*符號表示前一規則應用零次或多次。

關于正則表達式,需要在實踐中多加練習,逐漸熟悉各種規則,并能夠靈活應用,而對于經常使用的格式檢查,還可以進行封裝。

主站蜘蛛池模板: 徐州市| 福建省| 滦平县| 平罗县| 神木县| 尉氏县| 阿合奇县| 布拖县| 呼和浩特市| 建水县| 隆化县| 射洪县| 军事| 华安县| 绩溪县| 巴塘县| 精河县| 台北县| 石家庄市| 乐至县| 武威市| 格尔木市| 巫溪县| 台山市| 高安市| 东台市| 松桃| 杭锦后旗| 汽车| 安平县| 尚义县| 和平县| 富源县| 正镶白旗| 泸西县| 常州市| 灌阳县| 宣恩县| 乌鲁木齐县| 波密县| 沂水县|