技术文章 > Python技术 > Python爬虫 > 正文

Re如何支持python爬虫的正则表达式?

学了python的小伙伴,应该听说过正则表达式。没有听过也不要紧。之前我们有过基础的介绍,不明白的可以去翻看一下。同样熟悉的还有字符串,这个是最最基础的知识点啦,相信大家都会。re后缀的模块有很多,所以小编是经过筛选才分享出来的。两者结合一起使用小编提出疑问,Re模块中怎样实现python爬虫的正则表达式呢?带着这个问题,开始我们今天的学习吧。


Python 自带了 re 模块,它提供了对正则表达式的支持。主要用到的方法列举如下

#返回pattern对象
re.compile(string[,flag])  
#以下为匹配所用函数
re.match(pattern, string[, flags])
re.search(pattern, string[, flags])
re.split(pattern, string[, maxsplit])
re.findall(pattern, string[, flags])
re.finditer(pattern, string[, flags])
re.sub(pattern, repl, string[, count])
re.subn(pattern, repl, string[, count])


本篇文章以两个最常用的方法进行举例介绍

1.re.match(pattern, string[, flags])

这个方法将会从 string(我们要匹配的字符串)的开头开始,尝试匹配 pattern,一直向后匹配,如果遇到无法匹配的字符,立即返回 None,如果匹配未结束已经到达 string 的末尾,也会返回 None。两个结果均表示匹配失败,否则匹配 pattern 成功,同时匹配终止,不再对 string 向后匹配。下面我们通过一个例子理解一下

__author__ = 'CQC'
# -*- coding: utf-8 -*-
 
#导入re模块
import re
 
# 将正则表达式编译成Pattern对象,注意hello前面的r的意思是“原生字符串”
pattern = re.compile(r'hello')
 
# 使用re.match匹配文本,获得匹配结果,无法匹配时将返回None
result1 = re.match(pattern,'hello')
result2 = re.match(pattern,'helloo CQC!')
result3 = re.match(pattern,'helo CQC!')
result4 = re.match(pattern,'hello CQC!')
 
#如果1匹配成功
if result1:
    # 使用Match获得分组信息
    print result1.group()
else:
    print '1匹配失败!'
 
 
#如果2匹配成功
if result2:
    # 使用Match获得分组信息
    print result2.group()
else:
    print '2匹配失败!'
 
 
#如果3匹配成功
if result3:
    # 使用Match获得分组信息
    print result3.group()
else:
    print '3匹配失败!'
 
#如果4匹配成功
if result4:
    # 使用Match获得分组信息
    print result4.group()
else:
print '4匹配失败!'

运行结果

hello
hello
3匹配失败!
Hello

 

2.re.search(pattern, string[, flags])

search 方法与 match 方法极其类似,区别在于 match () 函数只检测 re 是不是在 string 的开始位置匹配,search () 会扫描整个 string 查找匹配,match()只有在 0 位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match () 就返回 None。同样,search 方法的返回对象同样 match () 返回对象的方法和属性。我们用一个例子感受一下

#导入re模块
import re
 
# 将正则表达式编译成Pattern对象
pattern = re.compile(r'world')
# 使用search()查找匹配的子串,不存在能匹配的子串时将返回None
# 这个例子中使用match()无法成功匹配
match = re.search(pattern,'hello world!')
if match:
    # 使用Match获得分组信息
    print match.group()
### 输出 ###
# world


以上就是Re支持python爬虫正则表达式的两种常见方式。小编在搜集资料的时候,还看到不过其他re模块的一些知识点,篇幅有限就没有分享出来,勤学好问的宝宝们肯定已经自己行动起来啦~更多Python学习推荐:PyThon学习网教学中心

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 Python3爬虫入门:正则表达式
 python如何验证字符串是否符合正则表达式?
 如何用 Python 和正则表达式抽取文本结构化信息?
 python爬虫中的正则表达式是不是困扰了你好久?
 python正则表达式是什么?怎么用?
相关视频章节
 正则表达式的概念
 正则表达式的语法
 正则表达式基础
推荐视频
视频教程分类