-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy path常用的正则表达式
229 lines (181 loc) · 9.57 KB
/
常用的正则表达式
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
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
1. 用户名正则表达式模式(测试代码请下载)
^[a-z0-9_-]{3,15}$
^ # 行开始
[a-z0-9_-] # 匹配列表中的字符,a-z,0–9,下划线,连字符
{3,15} # 长度至少3个字符,最大长度为15
$ # 行结束
2. 密码正则表达式模式
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
( # 组开始
(?=.*\d) # 必须包含一个数字 0-9
(?=.*[a-z]) # 必须包含一个小写字符
(?=.*[A-Z]) # 必须包含一个大写字符
(?=.*[@#$%]) # 必须包含一个列表中的特殊字符"@#$%"
. # 检查所有字符串与前面的条件的匹配
{6,20} # 长度至少为6个字符,最大长度为20
) # 组结束
3. 16进制颜色代码正则表达式模式
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
^ # 行开始
# # 必须包含一个"#"符号
( # 组#1开始
[A-Fa-f0-9]{6} # 列表中的任意字符串,长度为6
| # ..或者
[A-Fa-f0-9]{3} # 列表中的任意字符串,长度为3
) # 组#1结束
$ # 行结束
4. Email 正则表达式模式
^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$
^ # 行开始
[_A-Za-z0-9-]+ # 必须以中括号中的字符为起始字符[],必须包含一个或多个(+)
( # 组#1开始
\\.[_A-Za-z0-9-]+ # 接下来是一个点"."和中括号内的字符[],必须包含一个或者多个(+)
)* # 组#1结束, 这个组是可选的(*)
@ # 必须包含一个"@"符号
[A-Za-z0-9]+ # 接下来是中括号内的字符[],必须包含一个或者多个(+)
( # 组 #2开始 – 一级TLD检查
\\.[A-Za-z0-9]+ # 接下来是一个点"."和中括号内的字符[],必须包含一个或者多个(+)
)* # 组#2结束,这个组是可选的(*)
( # 组#3开始 – 二级TLD检查
\\.[A-Za-z]{2,} # 接下来是一个点"."和中括号内的字符[], 最小长度为2
) # 组#3结束
$ # 行结束
5. 图像文件扩展名正则表达式模式
([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$)
( # 组#1开始
[^\\s]+ # 必须包含一个或更多的任意字符(除了空格)
( # 组#2开始
\\. # 接下来是一个点"."
(?i) # 忽略后边字符的大小写检查
( # 组#3开始
jpg # 包含字符"jpg"
| # ..或者
png # 包含字符"png"
| # .. 或者
gif # 包含字符"gif"
| # .. 或者
bmp # 包含字符"bmp"
) # 组#3结束
) # 组#2结束
$ # 字符串的结束
) # 组#1结束
补充一个:[\\s\\S]*?([^\\/]*?\\.jpg)
6. IP地址正则表达式模式
^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.
([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$
^ # 行开始
( # 组#1开始
[01]?\\d\\d? # 可以是1到2个数字. 如果出现3个数字, 必须以0或者1开始
# 例如 ([0-9], [0-9][0-9],[0-1][0-9][0-9])
| # ...或者
2[0-4]\\d # 以2开始, 紧跟着是0-4,并且以任意数字结尾(2[0-4][0-9])
| # ...或者
25[0-5] # 以2开始, 紧跟着是5,并且以0-5结尾 (25[0-5])
) # 组#1结束
\\. # 接下来是点"."
.... # 重复3次 (3x)
$ # 行结束
7. 时间格式正则表达式模式
12-小时制时间正则表达式模式
(1[012]|[1-9]):[0-5][0-9](\\s)?(?i)(am|pm)
( # 组#1开始
1[012] # 以10, 11, 12开始
| # 或者
[1-9] # 以1,2,...9开始
) # 组#1结束
: # 接下来是一个冒号 (:)
[0-5][0-9] # 接下来是0..5和0..9,意思是00到59
(\\s)? # 接下来是一个空格(可选)
(?i) # 下面的检查不区分大小写
(am|pm) # 接下来是AM或者PM
24小时制时间正则表达式模式
([01]?[0-9]|2[0-3]):[0-5][0-9]
( # 组#1开始
[01]?[0-9] # 以0-9,1-9,00-09,10-19开始
| # 或者
2[0-3] # 以20-23开始
) # 组#1结束
: # 接下来是一个冒号(:)
[0-5][0-9] # 接下来是0..5和0..9,意思是00到59
8. 日期格式 (dd/mm/yyyy) 正则表达式模式
(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)
( # 组#1开始
0?[1-9] # 01-09或者1-9
| # ..或者
[12][0-9] # 10-19或者20-29
| # ..或者
3[01] # 30, 31
) # 组#1结束
/ # 接下来是一个"/"
( # 组#2开始
0?[1-9] # 01-09或者1-9
| # ..或者
1[012] # 10,11,12
) # 组#2结束
/ # 接下来是一个"/"
( # 组#3开始
(19|20)\\d\\d # 19[0-9][0-9]或者20[0-9][0-9]
) # 组#3结束
9. HTML标签正则表达式模式
<(\"[^\"]*\"|'[^']*'|[^'\">])*>
< # 以"<"标签开始
( # 组#1开始
\"[^\"]*\" # 只允许两个双引号成对出现-"string"
| # ..或者
'[^']*' # 只允许两个单引号成对出现- 'string'
| # ..或者
[^'\">] # 不能出现单独的双引号、单引号和">"
) # 组#1结束
* # 0次或多次
> # 以结束标签">"结束
10. HTML链接正则表达式模式
HTML中的A标签正则表达式模式
(?i)<a([^>]+)>(.+?)</a>
( # 组#1开始
?i # 所有的检查区分大小写
) # 组#1结束
<a # 以"<a"开始
( # 组#2开始
[^>]+ # 除了(">")之外的任意字符,至少一个字符
) # 组#2结束
> # 接下来是">"
(.+?) # 匹配所有
</a> # 以"</a>结束
提取HTML链接正则表达式模式
\\s*(?i)href\\s*=\\s*(\"([^\"]*)\"|'[^']*'|([^'\">\\s]+));
\s* # 可以以空格开始
(?i) # 所有的检查是不区分大小写的
href # 接下来是一个"href"字
\s*=\s* # 等号两边都允许空格,
( # 组#1开始
"([^"]*") # 只允许2个双引号成对出现 - "string"
| # ..或者
'[^']*' # 只允许2个单引号成对出现 - 'string'
| # ..或者
([^'">]+) # 或者不允许出现单独的单引号、双引号和">"
) # 组#1结束
D:\java>java TestTen
测试一:用户名正则表达式
"j123_" 精确匹配 "^[a-z0-9_-]{3,15}$" ? true
测试二:密码正则表达式
"j123_J@" 精确匹配 "((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})" ? true
测试三:16进制颜色代码
"#af0067" 精确匹配 "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$" ? true
测试四:Email 正则表达式
"[email protected]" 精确匹配 "^([_A-Za-z0-9-]+)@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-
Za-z]{2,})$" ? true
测试五:图像文件扩展名
"j123_.jPG" 精确匹配 "([^\s]+(\.(?i)(jpg|png|gif|bmp))$)" ? true
测试六: IP地址正则表达式
"192.168.1.11" 精确匹配 "^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25
[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$" ? true
测试七:时间格式正则表达式
"12:35 PM" 精确匹配 "(1[012]|[1-9]):[0-5][0-9](\s)?(?i)(am|pm)" ? true
测试八:日期格式(dd/mm/yyyy)
"02/09/2012" 精确匹配 "(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\d\d)"
? true
测试九:HTML标签正则表达式
"<img src='../test/j123.gif'>" 精确匹配 "<("[^"]*"|'[^']*'|[^'">])*>" ? true
测试十:HTML链接正则表达式
"<a hreF='www.baidu.com'>www.baidu.com</a>" 精确匹配 ".*?(?i)href\s*=\s*("([^"]*
)"|'[^']*'|[^'">\s]+).*?" ? true