正則表達式就是用一个“字符串”来描写叙述一个特征,然后去验证还有一个“字符串”是否符合这个特征
http://www.regexper.com/ 可将正則表達式转化成图形
以下来看看正则的基本使用方法
^-匹配字符串的開始
$-匹配字符串的结束
eg: ^regex$匹配字符串regex
d-匹配数字
?-反复0次或1次
*-反复0次或多次
+-反复1次或多次
{n}-反复n次
{n,}-反复n次或多次
{n,m}-反复n到m次
eg: d?匹配数字0次或1次
eg: d{5,}匹配数字5次或很多其它次
[xyz]-匹配x、y或z
eg: [123]匹配数字1、2或3
eg: [0-9]匹配0-9的数字
eg: [0-9]{5}匹配5个数字
eg: [a-zA-Z0-9]匹配字母或数字
eg: [a-zA-Z0-9]{5}匹配5个字母或数字或字母和数字的组合
事实上
?等价于{0,1}
*等价于{0,}
+等价于{1,}
d等价于[0-9]
[xyz]仅仅能匹配单个元素,假设想匹配12、34怎么办呢?
能够使用()
()-子表达式
eg:(12|34)匹配12或34
eg:^qq(d{5,11})?
$匹配qq或qq123456
w-匹配字母、数字、下划线、汉字
.-匹配除换行以外的随意字符
s-匹配空白符
-匹配单词的開始或结束的位置
W-匹配除字母、数字、下划线、汉字以外的字符
S-匹配非空白符的字符
D-匹配非数字的字符
B-匹配非单词開始或结束的位置
[^x]-匹配除x以外的随意字符
[^xyz]-匹配除x、y、z以外的随意字符
两个简单的样例:
注冊账号时。账号仅仅能包括字母或数字,长度为5-10位:[a-zA-Z0-9]{5,10}
通过http://www.regexper.com/将此正則表達式转化成图形
简单的邮箱验证:^[^.@]+@[^.@]+.[a-z0-9]+$