表1 正则表达式中的元字符
元字符 | 正则表达式中的写法 | 含义 |
. | "." | 代表任意一个字符 |
\d | "\\d" | 代表0~9的任何一个数字 |
\D | "\\D" | 代表任何一个非数字字符 |
\s | "\\s" | 代表空白字符,如'\t'、'\n' |
\S | "\\S" | 代表非空白字符 |
\w | "\\w" | 代表可用作标识符的字符,但不包括“$” |
\W | "\\W" | 代表不可用于标识符的字符 |
\p{Lower} | \\p{Lower} | 代表小写字母{a~z} |
\p{Upper} | \\p{Upper} | 代表大写字母{A~Z} |
\p{ASCII} | \\p{ASCII} | ASCII字符 |
\p{Alpha} | \\p{Alpha} | 字母字符 |
\p{Digit} | \\p{Digit} | 十进制数字即[0~9] |
\p{Alnum} | \\p{Alnum} | 数字或字母字符 |
\p{Punct} | \\p{Punct} | 标点符号:!"#$%&'()*+,-./:'<=>?@[\]^_`{|}~ |
\p{Graph} | \\p{Graph} | 可见字符:[\p{Alnum}\p{Punct}] |
\p{Print} | \\p{Print} | 可打印字符:[\p{Graph}\x20] |
\p{Blank} | \\p{Blank} | 空格或制表符:[\t] |
\p{Cntrl} | \\p{Cntrl} | 控制字符:[\x00-x1F\x7F] |
表2 限定符
限定修饰符 | 意义 | 示例 |
? | 0次或1次 | A? |
* | 0次或多次 | A* |
+ | 0次或多次 | A+ |
{n} | 正好出现n次 | A{2} |
{n,} | 至少出现n次 | A{3,} |
{n,m} | 出现n~m次 | A{2,6} |
表3 方括号中元字符的含义
字符 | 含义 |
[abc] | 表示a、b或者c |
[^abc] | 表示a、b和c之外的任何字符 |
[a-zA-Z] | a~z或A~Z的任何字符 |
[a-d[m-p]] | a~d或m~p的任何字符 |
[a-z&&[def]] | d、e或者f |
[a-z&&[^bc]] | a~z之间不含b和c的所有字符 |
[a-z&&[^m-p]] | a~z之间不含m~p的所有字符 |
用例:
public static void main(String[] args){
String regexEmail = "\\w{0,}\\@\\w{0,}\\.{1}\\w{0,}"; //正则表达式,定义邮箱格式
String strEmail = "aaa@111.com";
if (strEmail.matches(regexEmail)){ //验证邮箱格式
System.out.println("是E_mail地址格式");
}
}