2019/3/15 Python今日收获

Python day18——057论一只爬虫的自我修养5:正则表达式、

1.正则表达式中"."(点号)能够匹配全部字符。若是要匹配点号则加上反斜杠(\)。正则表达式

 

2.匹配数字则用\d。spa

 

3.[ ]中括号用来建立字符类,能够匹配其中的任意一个字符,可是注意正则表达式是区分大小写的。例如:rre3d

re.search(r'[aeiou]','I love you') 结果是blog

匹配到了o字母,为何没有匹配开头的I,由于他是大写。ip

另:若这样写[a-z],则会匹配26个小写字母。同理,也能够写[0-9],[1-9]这样的字符类。io

 

4.能够这样写re.search(r'ab{3}c','abbbc'),大括号表示要重复三次前面的字符 。效率

甚至能够给重复次数一个范围:re.search(r'ab{3,10}c','abbbc')三到十次均可以匹配。程序

 

5.那么问题来了,如何匹配ip地址的0-255范围呢:re.search(r'[01]\d\d|2[0-4]\d|25[0-5]','192')便可。im

可是ip地址的最后两位可能出现个位数如:192.168.1.1,如何解决呢?db

re.search(r'[01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5]','192')设置前两位重复一次或零次。

 

6. Python3  正则表达式特殊符号及用法

 

注:①*表示零到正无穷  ②+表示一到正无穷 ③?表示0或1.尽可能使用这三个符号而不是大括号,这样程序会更简洁,效率也会更高。

④*和+都是默认使用贪心策略,尽量多的匹配,若是要关闭贪心,则在+或*后面加上一个?便可。

 7.特殊符号分为①元字符②\+特殊字符

\+元字符会使元字符失去原有的功能。

字符类是把[ ]内的内容当作普通字符匹配,除了几个特殊字符,好比[a-z]表示a到z

 

相关文章
相关标签/搜索