python爬虫(四、正则表达式)

使 r e 使用正则表达式引入模块re

import re

. 使 . c o m p i l e ( ) \color{Red}Ⅰ.使用.compile()方法创建一个正则表达式

pat = re.compile("AA")

, p a t A A 如代码所示,pat只匹配AA的部分


. 使 . s e a r c h ( ) \color{orange}Ⅱ.使用.search()来匹配

import re
pat = re.compile("AA") #匹配规则
m = pat.search("ASdsdAAiAAA") #对"ASdsdAAiAAA"进行匹配
print( m )

, . 匹配后返回匹配是否成功,在哪匹配等信息. 而且只匹配第一个出现位置


. 使 . f i n d a l l ( ) \color{green}Ⅲ.使用.findall()方法来匹配

s e a r c h ( ) , f i n d a l l 上面说到search()只能匹配第一个出现位置,那findall能匹配所有位置

. f i n d a l l ( 1 2 ) .findall(字符串1,字符串2)

1 , 2 其中字符串1是匹配标准模板,字符串2是待匹配的串

import re
print(re.findall("[A-Z]","asaSasFSaasal")) #模板串使用了正则表达式,匹配一个大写字母

再来看一个

import re
print(re.findall("[A-Z]+","asaSasFSaasal")) #'+'表示匹配1个或多个

. . s u b ( ) \color{blue}Ⅳ.替换方法.sub()

. s u b ( 1 2 3 ) .sub(串1,串2,串3)

把串3中的串1都替换为串2

import re
print( re.sub('a','A','asdAaASaJK'))

最后建议在比较串前面加上r,可以不用担心转义的问题

如下面的代码

import re
a="\a\a\a\sds"
b=r"\a\a\a\sds"
print(a)
print(b)
$明显b更优秀$

猜你喜欢

转载自blog.csdn.net/jziwjxjd/article/details/106802655