正则表达式就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征
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-匹配空白符
\b-匹配单词的开始或结束的位置
\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]+$