正则表达式的基本语法
下面有我整理的关于正则表达式的基本语法;
具体案例网络爬虫
一.正则表示式语法
1.1普通字符
字母、数字、汉字、下划线、以及没有特殊定义的标点符 号都是“普通字符”。
1.2转义字符
与java中的转义字符一致
1.3标准字符集
| 
 \d  | 
 \d 任意一个数字,0~9 中的任意一个  | 
| 
 \w  | 
 任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个  | 
| 
 \s  | 
 包括空格、制表符、换行符等空白字符的其中任意一个  | 
| 
 .  | 
 小数点可以匹配任意一个字符(除了换行符)   | 
1.3自定义字符集
正则表达式的特殊符号,被包含到中括号中,则失去特殊意义,除了 ^,-之外。
如:[\d.\-+]将匹配:数字、小数点、+、-
| 
 
  | 
 [ab5@]  | 
 匹配 "a" 或 "b" 或 "5" 或 "@"  | 
| 
 ^  | 
 [^ abc]  | 
 匹配 "a","b","c" 之外的任意一个字符  | 
| 
 -  | 
 [f-k]  | 
 匹配 "f"~"k" 之间的任意一个字母  | 
| 
 
  | 
 [^A-F0-3]  | 
 匹配 "A"~"F","0"~"3" 之外的任意一个字符  | 
1.4量词
a\d?b 将匹配ab之间出现0-1字符
a\d+b 将匹配ab之间最少出现1字符
a\d*b 将匹配ab之间最少出现0字符
| 
 {n}  | 
 表达式重复n次  | 
| 
 {m,n}  | 
 表达式至少重复m次,最多重复n次  | 
| 
 {m,}  | 
 表达式至少重复m次  | 
| 
 ?  | 
 匹配表达式0次或者1次,相当于 {0,1}  | 
| 
 +  | 
 表达式至少出现1次,相当于 {1,}  | 
| 
 *  | 
 表达式不出现或出现任意次,相当于 {0,}  | 
1.5字符边界
匹配的不是字符而是位置
| 
 ^  | 
 与字符串开始的地方匹配  | 
| 
 $  | 
 与字符串结束的地方匹配  | 
| 
 \b  | 
 匹配一个单词边界  | 
1.6选择符与分组
| 
 |  | 
 左右两边表达式之间 "或" 关系  | 
| 
 ([a-z]{2,})\1  | 
 分组已捕获的字符串  | 
([a-z]{2,})\1
 
1.7零式断言
| 
 (?=exp)  | 
 断言自身出现的位置的后面能匹配表达式exp  | 
[a-z]+(?=\d)
 
一.实例
2.1电话号码验证
(1)电话号码由数字和"-"构成 – 
(2)电话号码为7到8位 – 
(3)如果电话号码中包含有区号,那么区号为三位或四位, 首位是0. – 
(4)区号用"-"和其他部分隔开
结果:0\d{2,3}-\d{6,8}
2.2手机验证
(1)移动电话号码为11位 – 
(2)11位移动电话号码的第一位和第二位为"13“,”15”,”18”
结果:1[358]\d{3,9}\b
                    
                
                
            
        
浙公网安备 33010602011771号