微博项目做到了超链接解析部分,听说要用到正则表达式,于是苦逼地上网查、然后苦逼地看到了这些让人苦逼的东西。算,废话不说了。
如果是完全的初学者,有一个网站非常推荐:
jb51.net/tools/zhengze.html
我就是看着这个学习的,现在在这里mark下我需要的东东。
我所理解的正则表达式的应用:正则表达式就是用来进行文本匹配的工具,例如:做网页前端的时候有时需要处理账号密码的合法性(打个比方,账号必须以字母开头,后面是n位数字;或者密码必须是长度为6到12的纯数字等)。在这些地方正则表达式都能起到至关重要的作用。但是正则表达式不提供任何数学功能,所以在做比如上述例子或者做例如匹配ip地址等时只能自己写一些略长的表达式来做到。
正则表达式的部分元字符:
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
例如:上述密码的判定可以用^\d{6,12}$,其中\为转义字符,同各编程语言;{n}表示匹配(满足条件的文本)重复n次,不多不少正好n次,而{m,n}(中间没有空格)是指匹配满足条件的文本不小于m次且不大于n次。
正则表达式中的限定符:
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n, m} 重复n到m次
例如:windows\d+代表匹配windo