一个用来匹配 URL 的正则表达式

mastering regular expressions

很早就买了 Mastering Regular Expressions 这本书,可惜却从没认认真真看完过一遍,虽然平时会经常遇到、用到一些正则表达式,但是都是比较简单的表达式,容易理解,所以这本书就一直都躺在书架上当作工具书在用,没有动力读下去:),那些奇怪的符号确实很难记,看了几天不用就忘了。这里有个简单的正则表达式用来匹配基本的 URL:

^https?://[\d\-a-zA-Z]+(\.[\d\-a-zA-Z]+)*/?$

一点解释:

“a-z”:匹配所有小写字母字符
“A-Z”:匹配所有大写字母字符
“\d”:匹配1个十进制数字
“\D”:匹配1个非十进制数字

“?”:重复出现0次或者1次
“*”:重复出现0次或者多次
“+”:重复出现1次或者多次
“X{n}”:重复出现n次

“^”:从一行的开始匹配
“$”:从一行的结束开始匹配

匹配 Email 地址,匹配日期,匹配信用卡卡号,更多的正则表达式例子看这里:Regular-Expressions.info