主要用途: 通常正则表达式都是用来判断输入的字符串是否符合自己的要求。
在Java中主要用到的是java.utill.regex包下的类:
这里面主要用到的就是Pattern和Matcher两个类。
Pattern主要是实现正则表达式,Matcher则是匹配所输入的参数。下图是JDK API提供的Patter解释和用法:
判断邮箱的正则表达小栗子:
String reg = "^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.com|\\.cn|\\.net){1,2}$";
String mail = "test@test.com.cn";
Pattern pattern = Pattern.compile(reg);//注册表达式
Matcher matcher = pattern.matcher(mail);//匹配mail
boolean result = matcher.matchers();//查看匹配结果 true或false
正则表达式常用编码表:
[] | 表示一个字符 |
[12a] | 表示1、2、a中任意一个字符 |
[^12a] | 除了 1、2、a中任意一个字符 |
[a-z] | 表示a到z中的任意一个字符 |
[a-zA-Z0-9_] | 表示a到z、A到Z、0到9以及下划线中的任意一个字符 |
[a-z&&[^bc]] | 表示a到z 中除了b、c之外的任意一个字符,&&表示“与”关系 |
. | 表示任意一个字符 |
\d | 任意一个数字字符,相当于[0-9] |
\D | 任意一个非数字字符,相当于[^0-9] |
\s | 空白字符,相当于[\r\n\f\r\x0B] |
\S | 非空白字符,相当于[^\s] |
\n | 匹配换行 |
\r | 匹配回车 |
\w | 任意一个单词字符,相当于[a-zA-Z0-9_] |
\W | 任意一个非单词字符相当于[^\w] |
^ | 表示字符串必须以其后面约束的内容开始 |
$ | 表示字符传必须以其前面约束的内容结尾 |
? | 表示前面的内容出现0到一次 |
* | 表示前面的内容穿线0到多次 |
+ | 表示前面的内容出现1到多次 |
{n} | 表示前面的字符重复n次 |
{n,} | 表示前面的字符至少重复n次 |
{n,m} | 表示前面的字符至少重复n次,并且小于m次 |
邮箱格式中@无特殊含义直接写就可以。