正则表达式学习笔记
上面的图片引用自脚本之家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。最主要的还是多练习,多实践啊。