概念
正则表达式是一组特定的字符,用来描述一组字符串的格式。
作用
校验一组字符串是否满足定义的格式。
正则表达式运算符
如下所示:
[abc] a、b、c中任意一个字符 [^abc] 除了a、b、c之外的任意一个字符
[a-z] a到z中的任意一个字符 [a-zA-Z] a到z和A-Z中任意一个字符 [a-z&&[^bc]] = [ad-z] a到z中除了b、c之外的任意一个字符 [0-9] 0-9中任意一个数字 a|b 匹配a或者b 如下所示:
. 表示匹配任意一个字符
如果想要表示一个字符.则可以使用转义字符:\.
\d 表示匹配任意一个数字字符,等价于[0-9] \D 表示匹配任意一个非数字字符,等价于[^0-9] \n 表示匹配任意一个换行字符,等价于\x0a和\cM \s 表示匹配任意一个空白字符,包括空格、制表符、换页符等。等价于[\f\n\r\t\b] \S 表示匹配任意一个非空白字符,等价于[^\f\n\r\t\b] \w 表示匹配任意一个单词字符,包括下划线。等价于[a-zA-Z_0-9] \W 表示匹配任意一个非单词字符。等价于[^a-zA-Z_0-9] 量词如下
? 表示匹配0或1个字符
如:X?表示匹配0或1个X字符
* 表示匹配0或多个字符
如:X*表示匹配0或多个X字符
+ 表示匹配1或多个字符
如:X+表示匹配1或多个X字符
{m} 表示匹配m个X字符
如:X{m}表示匹配m个X字符
{m,} 表示匹配至少m个X字符
如:X{m,}表示匹配至少m个X字符
{m,n} 表示匹配m到n个X字符
如:X{m,n}表示匹配m到n个X字符
正则表达式运算符优先级
如下所示:从高到低
\ ()、(?:),(?=)、[] *,+,?,{n}、{n,}、{n,m} ^,$,\任何元字符,任何字符 |
匹配正则表达式
String中的match方法就是用来判断某个字符串是否符合指定正则表达式的格式,如下所示:
boolean java.lang.String.matches(String regex) regex表示正则表达式 如下所示:
public class Test2 { public static void main(String[] args) { //验证邮箱 String mailRegex = "\\w+@\\w+(\\.[a-z]+)+"; System.out.println("123@163.com".matches(mailRegex)); //验证手机号 String phoneRegex = "^1[3-9]\\d{9}$"; System.out.println("^13123456789".matches(phoneRegex)); } } 结果为: true true
注意事项
如下所示:
1. ^放在[]里面表示取反;
^放在[]外面表示以...字符开头,常常放在正则表达式的开头处。
$表示以...字符结尾,常常放在正则表达式的结尾处。
如:^a$表示字母a
2.[]表示其中任意一个字符 3.()表示出现整体 3.{}表示出现几次 4.&&表示与,|表示或