我们在使用python进行网络爬虫获取到文本内容之后,需要对文本内容进行加工处理,匹配并提取出我们需要的内容。对于这样的需求,我们可以耐心的在python代码中逐个列出你想要匹配的字符串,这或许是个庞大而费时的任务。更好的一种方式,是采用正则表达式进行匹配我们使用python爬虫到的内容。
什么是正则表达式?
正则表达式是刻画字符串特征的一段特殊的字符串。python中正则表达式可以对应一组字符串,正则表达式可以用有穷的规则去刻画无穷多个字符串。
python中正则表达式的语法:
python中正则表达式由字符和操作符构成。下面是python中正则表达式常用的操作符:
python正则表达式
python正则表达式
然后我们可以看几个python正则表达式的例子:匹配中文字符:[\u4e00-\u9fa5];匹配IP地址:(([1‐9]?\d|1\d|2[0‐4]\d|25[0‐5]).)([1‐9]?\d|1\d|2[0‐4]\d|25[0‐5])
还有更多的例子可以帮助理解python正则表达式的使用:
python正则表达式实例
在python中如何应用正则表达式?
首先,在python中我们要导入python基本库re,像是这样import re。在python中正则表达式的表示有两种类型:raw string类型:如 r'\d' 表示匹配数字。string类型:如 '\\d' 表示匹配数字。
在python中使用正则表达式有两种方式:
如在字符串中匹配字符p或y,第一种使用方式:rst = re.search(r'[py]', 'python') ;第二种方式:pat = re.compile(r'[py]') rst = pat.search('python') 。两种方式的结果完全一样,在同一匹配规则需要应用多次的时候,应用第二种方式更好。
下图是在python中使用正则表达式的常用方法:
python中re常用方法
在python中使用正则表达式进行匹配的时候,要注意python中默认的匹配原则是贪婪匹配,即匹配符合正则表达式定义规则的最长的字符串。但是,有的时候我们希望执行最小匹配,此时,我们可以在那些长度输出可能不同的匹配规则中,在造成长度输出可能不同的操作符后增加“?”变成最小匹配。如在 “*”后加“?”变成“*?”实现最小匹配。
领取专属 10元无门槛券
私享最新 技术干货