String运用正则表达式

正则标记

字符

x 表示一个置顶的字符,如a 表示一个字母a
\\ 表示一位字符”\”
\n 换行

字符范围

在指定字符范围之中选1位,只能出现1位
[abc] 表示可以是a b c中的任意一位
[^abc] 表示不是a b c中的任意一位
[a-zA-Z] 表示任意一个字母
[0-9] 表示任意一个字母

简洁表达式

. 表示任意一位数字
\d 表示一位数字
\D 表示一位非数字
\s 表示一位空格
\S 表示一位非空格
\w 表示一位字母、数字、,等价于[a-zA-Z0-9]
\W 表示一位非字母、数字、
,等价于[^a-zA-Z0-9]

边界匹配

^表示正则的开头
$表示正则的结尾

正则数量表示

? 可以出现0或1次
+ 可以出现1或1+次
* 可以出现0、1、1+次
{n} 正好出现n次
{n,} 出现n+次
{n,m} 出现n次到m次

逻辑操作

正则1正则2 正则2紧跟着正则1
正则1|正则2 或关系

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexChk
{
public boolean startCheck(String reg,String string)
{
boolean tem=false;
Pattern pattern = Pattern.compile(reg);
Matcher matcher=pattern.matcher(string);
tem=matcher.matches();
return tem;
}
/**
* 检验整数,适用于正整数、负整数、0,负整数不能以-0开头,
* 正整数不能以0开头
*
* */
public boolean checkNr(String nr)
{
String reg="^(-?)[1-9]+\\d*|0";
return startCheck(reg,nr);
}
/**
* 手机号码验证,11位,不知道详细的手机号码段,只是验证开头必须是1和位数
* */
public boolean checkCellPhone(String cellPhoneNr)
{
String reg="^[1][\\d]{10}";
return startCheck(reg,cellPhoneNr);
}
/**
* 检验空白符
* */
public boolean checkWhiteLine(String line)
{
String regex="(\\s|\\t|\\r)+";
return startCheck(regex,line);
}
/**
* 检查EMAIL地址
* 用户名和网站名称必须>=1位字符
* 地址结尾必须是以com|cn|com|cn|net|org|gov|gov.cn|edu|edu.cn结尾
* */
public boolean checkEmailWithSuffix(String email)
{
String regex="\\w+\\@\\w+\\.(com|cn|com.cn|net|org|gov|gov.cn|edu|edu.cn)";
return startCheck(regex,email);
}
/**
* 检查EMAIL地址
* 用户名和网站名称必须>=1位字符
* 地址结尾必须是2位以上,如:cn,test,com,info
* */
public boolean checkEmail(String email)
{
String regex="\\w+\\@\\w+\\.\\w{2,}";
return startCheck(regex,email);
}
/**
* 检查邮政编码(中国),6位,第一位必须是非0开头,其他5位数字为0-9
* */
public boolean checkPostcode(String postCode)
{
String regex="^[1-9]\\d{5}";
return startCheck(regex,postCode);
}
/**
* 检验用户名
* 取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾
* 用户名有最小长度和最大长度限制,比如用户名必须是4-20位
* */
public boolean checkUsername(String username,int min,int max)
{
String regex="[\\w\u4e00-\u9fa5]{"+min+","+max+"}(?<!_)";
return startCheck(regex,username);
}
/**
* 检验用户名
* 取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾
* 有最小位数限制的用户名,比如:用户名最少为4位字符
* */
public boolean checkUsername(String username,int min)
{
//[\\w\u4e00-\u9fa5]{2,}?
String regex="[\\w\u4e00-\u9fa5]{"+min+",}(?<!_)";
return startCheck(regex,username);
}
/**
* 检验用户名
* 取值范围为a-z,A-Z,0-9,"_",汉字
* 最少一位字符,最大字符位数无限制,不能以"_"结尾
* */
public boolean checkUsername(String username)
{
String regex="[\\w\u4e00-\u9fa5]+(?<!_)";
return startCheck(regex,username);
}
/**
* 查看IP地址是否合法
* */
public boolean checkIP(String ipAddress)
{
String regex="(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
"(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
"(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
"(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])";
return startCheck(regex,ipAddress);
}
/**
* 验证国内电话号码
* 格式:010-67676767,区号长度3-4位,必须以"0"开头,号码是7-8位
* */
public boolean checkPhoneNr(String phoneNr)
{
String regex="^[0]\\d{2,3}\\-\\d{7,8}";
return startCheck(regex,phoneNr);
}
/**
* 验证国内电话号码
* 格式:6767676, 号码位数必须是7-8位,头一位不能是"0"
* */
public boolean checkPhoneNrWithoutCode(String phoneNr)
{
String reg="^[1-9]\\d{6,7}";
return startCheck(reg,phoneNr);
}
/**
* 验证国内电话号码
* 格式:0106767676,共11位或者12位,必须是0开头
* */
public boolean checkPhoneNrWithoutLine(String phoneNr)
{
String reg="^[0]\\d{10,11}";
return startCheck(reg,phoneNr);
}
/**
* 验证国内身份证号码:15或18位,由数字组成,不能以0开头
* */
public boolean checkIdCard(String idNr)
{
String reg="^[1-9](\\d{14}|\\d{17})";
return startCheck(reg,idNr);
}
/**
* 网址验证<br>
* 符合类型:<br>
* http://www.test.com<br>
* http://163.com
* */
public boolean checkWebSite(String url)
{
//http://www.163.com
String reg="^(http)\\://(\\w+\\.\\w+\\.\\w+|\\w+\\.\\w+)";
return startCheck(reg,url);
}
}