正则表达式用于判断句中,用来检查某一字符串是否满足某一格式。正则表达式是一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。
元字符 | 正则表达式中的写法 | 意义 |
---|
. | . | 代表任意一个字符 |
\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] |
在正则表达式中可以使用方括号[]括起来若干个字符来表示一个元字符
str = “[abc]4” 则str字符串a4、b4、c4、都是和该正则表达式匹配的字符串
[^456]:代表4、5、6之外的字符
[a-r]:代表a~r中的任意一个英文字母
[a-zA-Z]:可以表示任意一个英文字母
[a-e[g-z]]:表示a~e或者g~z中的任何一个字母(并运算,就是在这两个范围中相连接起来的字符串)
[a-o&&[def]]:代表字母d、e、f(交运算,取交集)
[a-d&&[^bc]]:即为a、d(差运算,差集)
在正则表达式中,可以用限定修饰符来限定元字符出现的次数
“A*”代表A可以在字符串中出现0次或多次(所给定标准的次数)
限定修饰符 | 意义 | 示例 |
---|
? | 0次或1次 | A? |
* | 0次或多次 | A* |
+ | 一次或多次 | A+ |
{n} | 正好出现n次 | A{2} |
{n,} | 至少出现n次 | A{2,} |
{n,m} | 出现n~m次 | A{2,6} |
String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
String str_1 = "aaa@";
String str_2 = "abababc@fx.123";
if(str_1.matches(regex)) {
System.out.println(str_1 + "合法");
}
if(str_2.matches(regex)) {
System.out.println(str_2 + "合法");
}
运行结果: