10分钟学会正则表达式
基础正则
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线,[a-zA-Z0-9]
\s 匹配任意的空白符,[\t\n\r\f]
\d 匹配数字,[0-9]
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
| 或的意思 与其它程序中的&相同
字符串的转义
当我们会当有特殊符号的时候我们该怎么办法呢
如:/ ? - + * . =甚至其它特殊符号
我们可以这样以加斜杠的方式添加:如:\/ \? \- \+ \. \=
匹配次数
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n}重复n次
{n,}重复n次或更多次(也可以理解为至少n次)
{n,m} 重复n到m次
贪婪与懒惰
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
匹配电话号码
好了 上面的基础部分大概都能匹配出常规你想要的一切了
比如说一个座机号码?一般的座机号码有 010-1234567 或者 010-12345678 因为我从来没有座机 所以不知道规则一般来说匹配一定要知道规则才可以匹配的 那么我们现在知道了规则就好办的多了上面的规则大概是:前面有三到四位数字一个“-”后面大概七到八位数字
那样就好办的多了
如:
\d{3}-\d{8}|\d{4}-\d{7} "|" 这个是或者的意思
匹配手机号码
手机号码的规则大概是:
13XXXXXXXXXX
15XXXXXXXXXX
18XXXXXXXXXX 额 还有什么不记得了 总之有需要你再添加 东西是死的 人是活的
那我们这时候就清楚了 第一位必须是1
第二位必须是3 5 8 或者是其它的
那么我们来试试吧
1[358]\d{9} 如果不懂的话可以看下上面的规则语句 多练习一下肯定会懂的
按照前两个例子来说 匹配QQ也是很简单的了 如:[0-9]\d{5-9} 现在的QQ都到10位了
匹配网址
我们常见的网址有很多种的 如:
http://www.baidu.com
http://www.baidu.com.cn
http://www-news.bai-du.com.cn
https://www.baidu.com
ftp://www.baidu.com.cn
那么从以上你看到了什么样的规则呢(当然你也可以匹配前三个就可以了)我一刚开始学时匹配出来的这样的 [\w]+://(\w[\w\.\-]+){2,3}不过很多人的是这样 [a-zA-z]+://[^\s]*
不管怎么样 我们最终的是要匹配出来你想要的字符串 怎么样匹配都是匹配啊 对吧
帐号验证
一般的帐号验证也是需要正则规则来匹配的
那么是如何来实现的呢
比如说你想要一个开头为字母的至少8位 又不能大于20位的帐号 那么怎么办呢
开头:一位字母[a-zA-Z] 然后是[a-zA-Z0-9]{8,20}这样不就出来了吗? [a-zA-Z][a-zA-Z0-9]{8,20}
有了这些基础的正则 我相信你也可以匹配一些基础常用的字符串了