当前位置: > python爬虫 >

python爬虫之使用正则表达式
栏目分类:python爬虫   发布日期:2019年03月10日 22:13:14   浏览次数:

                                 大家好,我是爱吃苹果的宇文拓,今天我给大家讲解的是关于正则表达式的运用 

       python正则表达式是处理字符串的强大的工具,运用它独特的语法结构,可以实现字符串的检索,替换,匹配验证。说的简单点它就是一个匹配规则,可以通过正确的匹配规则提取出你想要的字符串。

1.常见的匹配规则






想要需要使用正则表达式,上面图片中的规则是必须要记忆的。熟练掌握我提到的这些正则表达式,你可以用python里面的re库在python中实现正则表达式。接下来我将介绍一些常用到的匹配方法。

1.re.math():这个方法是匹配一个字符串的开头,使用是向它传入要匹配的字符串以及正则表达式,就可以检测到这个字符串是否匹配字符串。它会从传入字符串的起始位置开始匹配,如果匹配就返回匹配成功的结果;如果不匹配,就返回None。

re.match(pattern, string, flags=0)
#result = re.match('hello',content)
这段代码会在content中匹配以hello开头的字符。如果我们想获取匹配结果,可以使用result .group()方法获取。

2.贪婪匹配与非贪婪匹配: (.*)  代表贪婪匹配顾明思议是尽可能匹配多的字符,.非贪婪匹配(.*?)尽可能的匹配最少的字符。

3.re.search():我们前面说到match是匹配字符的开头,一旦开头不匹配,整个匹配就会失败,然而search则不是,它会扫描整个字符串,然后返回一个成功的匹配结果,当然我们也是用group方法来提取匹配的字符串。
        re.search(pattern, string, flags=0)

4.re.sub():正则表达式不仅可以用来提取信息,还可以用来修改文本。比如把一段文本中的所有数字都过滤掉。我们虽然可以使用replace方法,但是这样太麻烦了。我们借助正则表达式的sub方法可以轻松做到。
#content=‘213sdf345fgf’
#content=re.sub('d+','',content)
这句代码的意思是,将content里面的数字替换为空字符串(''),sub()的第一个参数为正则表达式,第二个参数为要替换成的字符串,第三个参数为原始字符串。

5.re.S:如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始,不会跨行。而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,将“ ”当做一个普通的字符加入到这个字符串中,在整体中进行匹配。

6.re.findall():在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有

7.re.split():split 方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下
       re.split(pattern, string[, maxsplit=0, flags=0])

总结:我们今天讲解论文关于正则表示的知识,关于它的一些常用语法,一定要熟记于心,然后又讲解了python中怎么使用正则表达式,关于re模块的一些常用方法以及它们的作用。正则表达式对于爬虫来说是非常重要的,因为我们在抓取网页内容的时候会用到。

 


相关热词:

热门关键词
python字符串
     
python教程 python爬虫 python人工智能 Python+大数据 python问答