常用元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
常用限定符
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
以此举个例子如邮箱:Yuan.Yiuri691@ningmeng.com.cn
正则表达式为:^[A-Za-z0-9-._]+@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,6})$
创建过程:
1. 开头和结尾:^$;
2. 加入@:^@$;
3. @前的内容匹配:[A-Za-z0-9-._] 大小写字母,数字,".",下划线 随机出现;"+" 号表示当前规则中的字符可以重复;
4. @后的内容受顶级域名的限制,按点号分割后的规则略有不同:(\.[A-Za-z]{2,6}) 必须是字母出现,比如.com,.cn等
举个Java案例:
邮箱匹配:
private static final String EMAIL_PATTERN = "^[A-Za-z0-9-._]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
匹配写法:
Pattern p = Pattern.compile("正则表达式");
Matcher m = p.matcher("传入字符串");
boolean b = m.matches();