一个正则表达式含有一些具有特殊意义字符的字符串,这些特殊字符称做正则表达式中的元字符。
比如:\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]代表英文字母(包括大写和小写)中的任何一个。
[a-d]代表a至d中的任何一个。
另外,中括号里允许嵌套中括号,可以进行并、交、差运算,例如:
[a-d[m-p]]代表a至d或m至p中的任何字符(并)。
[a-z&&[def]]代表d、e、或f中的任何一个(交)。
[a-f&&[^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类。