一個正規表示式含有一些具有特殊意義字元的字串,這些特殊字元稱做正規表示式中的元字元。
例如:\dcat中的d就是有特殊意義的元字符,代表0到9中的任何一個。
字串Ocat,1cat,2cat,…,9cat都是和正規表示式\dcat匹配的字串。
字串物件呼叫public boolean matches(String regex)方法可以判斷目前字串物件是否和參數regex指定的正規表示式符合。
常用的元字元如下:
在正規表示式中可以用方括號括起若干個字符來表示一個元字符,該元字符代表方括號中的任何一個字符,例如:
regex=[159]ABC;
那麼,1ABC、5ABC和9ABC都是和正規表示式regex相符的字串。
例如:
[abc]代表a、b、c中的任何一個。
[^abc]代表除了a、b、c以外的任何字元。
[a-zA-Z]代表英文字母(包括大寫和小寫)中的任何一個。
[ad]代表a至d中的任何一個。
另外,中括號裡允許嵌套中括號,可以進行並、交、差運算,例如:
[ad[mp]]代表a至d或m至p中的任何字元(並)。
[az&&[def]]代表d、e、或f中的任何一個(交)。
[af&&[^bc]]代表a、d、e、f(差)。
注意:由於“.”代表任何一個字符,所以在正則表達式中如果想使用普通意義的點字符,必須使用[.]或用56表示普通意義的點字符。
在正規表示式中可以使用限定修飾符。
舉個例子,對於限定修飾符?,如果X代表正規表示式中的一個元字符或普通字符,那麼X?就表示X出現0次或1次,例如:
regex=hel1o[2468]?;
那麼,hello,hello2,hello4,hello6和hello8都是與正規表示式regex相符的字串。
常用的限定修飾符的用法如下:
例如:
regex=@\w{4};
那麼,@abcd、@Java、@知行合一都是與正規表示式regex相符的字串。
注意: 有關正規表示式的細節可以去java.util.regex套件中查閱Pattern類別。