正则表达式
单个字符
\\:表示转义字符“\”
\t:表示“\t”
\n:匹配换行(\n)符号
字符集
【abc】:表示可能是字符a或者是字符b或者是字符c中的任意一位
【^abc】:表示不是a、b、c中的任意一位
【a-z】: 表示所有的小写字母
【a-zA-Z】:表示任意的一位字母,不区分大小写
【0-9】: 表示任意的一位数字
3、简化的字符集表达式
.: 表示任意的一位字符
\d: 等价于【0-9】
\D:等价于【^0-9】
\s:表示任意的空白字符,例如:“\t”、"\n"
\S:表示任意的非空白字符;
\w:等价于【a-zA-Z_0-9】,表示由任意的字母、数字、下划线组成;
\W:等价于【^a-zA-Z_0-9】
4、边界匹配
^:开始
$:结束
5、数量的表达
?:表示的出现的次数为0次或1次;
+:表示此正则可以出现1次或多次;
*:表示此正则可以出现0次、1次或多次;
{n}:表示此正则正好出现n次;
{n,}:表示此正则出现n次以上(包含n次);
{n,m}:表示此正则出现n~m次。
6、逻辑运算
正则1正则2:正则1判断后判断正则2
正则1|正则2:正则1或正则2有一组满足即可
(正则):将多个正则作为一组,可以为这一组单独设置出现的次数
举例:
1、判断字符串是否是数字
数字:由整数和小数组成。 10.1
\\d+(\\.\\d+)?
2、判断字符串是否是IPv4地址
IP地址:192.168.1.1
(\\d{1,3}\\.){3}\\d{1,3}
3、判断是否是日期格式
\\d{4}-\\d{2}-\\d{2}
4、判断电话号码
格式一:11111111;
格式二:010-11111111;
格式三:(010)-11111111;
( (\\d{3,4}-) | \\ (\\d{3,4}-\\) )? \\d{7,8}
5、验证email地址
格式一:由字母、数字、_组成,
\w+@\w+\\.\w+
格式二:其中必须以字母数字开头和结尾,
【a-zA-Z】【a-zA-Z0-9_\\.】{0.28}\\W+\\.(net|cn|com)
String类正则的支持
Pattern pattern = Pattern.compile(regex); 编译正则
Matcher mat = pattern.matcher(str);
boolean result = mat.matches();