正则表达式学习笔记

正则表达式学习笔记

上面的图片引用自脚本之家http://tools.jb51.net/regex/create_reg


初看正则的时候感觉好难啊,这都什么啊一堆乱码,后来开始照着例子写,自己琢磨着瞎写,搞了一天,现在记录一点学习的笔记跟经验。


首先要知道他的语法,简单的符号上面图片已经列出来了。现在随便写一个正则的表达式来分析他每一步是什么意思。

得介绍一个正则的在线测试工具,同样是脚本之家的:http://tools.jb51.net/regex/javascript可以选择脚本之家版或者替换版,都挺好用的。

原本正则是以/开始,以/结束的,但在这个工具里面不用写,直接写正文就行了。例如匹配数字原本是/\d/而在工具里只需写\d。好了,转入正题。

<span>-------------------------------------------------------我是分割线-----------------------------------------------------------</span>


首先写一个匹配邮箱的:邮箱的格式一般为字母或数字[email protected]+字母或数字+.com

匹配邮箱:    [a-zA-Z0-9][email protected]\w+\.com

分析:[a-zA-Z0-9]:表示第一个字符是字母或者是数字。

   +:表示前一个字符会出现至少一次,也就是说[a-zA-Z0-9]至少会有一个

   @:表示会有一个@符号。

   \w:表示会有一个字母或数字或下划线。

   +:表示前一个字符至少出现一次,也就是说\w至少会有一个。

   \.:表示会有一个.出现。pass:\是转义符,本来.的含义是匹配除换行符以外的所有字符。加上\就只表示.本身。

com:表示以com结尾的。

再写一个匹配url地址的:地址的格式是http或https+://+字母或数字

匹配url地址:   https?://[^\s]*

分析:https:表示会出现https。

   ?:表示前一个字符出现零次或一次。也就是说s可能出现也可能不出现。

    ://:会出现://。

     [^\s]:\s表示匹配空格,[^\s]表示匹配不是空格的。

     *:表示前一个字符出现零次或更多次。

练习的时候可以去下载一两个页面,然后复制到测试工具的匹配选项,这样就不需要自己去打字符了。

就两个简单的例子,希望不要嘲笑写的low。最主要的还是多练习,多实践啊。