上一篇博客中主要是介绍了使用字符串的find函数匹配字符串,使用字符串的find函数匹配比较简单的网页中的字符串还可以,但是像是ip地址这样比较复杂的字符串却很麻烦,这时,正则表达式便派上了用场。正则表达式就是用来描述复杂的规则的。
由于这系列的博客还只是为了学习爬虫,所以用到什么正则表达式的知识便学习什么知识,对于正则表达式的学习也只能是断断续续。下面直接上干货。
正则表达式通过Python中的re模块来实现,我们首先学习re模块中的search方法。
search()方法用于在字符串中搜索正则表达式模式第一次出现的位置,为了避免不必要的麻烦,我们在要匹配的字符或者字符串之前加上r。
正则表达式的通配符:英文的点号. 可以匹配任何字符
如果要匹配. ,我们可以使用转义的方法,即在.前面加上\
\d 匹配任何一个数字
表示字符串的范围: 字符类[] 匹配字符类中任意一个字符都算匹配
字符类中的元素之间没有多余的符号,因为这是匹配
正则表达式默认开启大小写敏感模式
一是关闭大小写敏感模式
二是是全写上
字符类中的’-‘表示范围[a-z]:表示a到z26个小写的英文字母
匹配次数的问题{} 来解决 {}中的数字表示重复的次数
只是重复的{前面的一个字符
括号中的数字表示总共出现的次数
匹配次数的范围{n,m} 重复n~m次都可以
{n,m}是一个闭区间
给出上述知识点的测试样例:
import re
print(re.search(r'FishC','I love FishC.com!'))
print(re.search(r'.','I love FishC.com!'))
print(re.search(r'\.','I love Fish