我是靠谱客的博主 难过钢笔,最近开发中收集的这篇文章主要介绍python中三大数据提取方法(3)----正则表达式re库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.什么是正则表达式?

正则就是特定的规则对数据进行过滤,拿到我们想要的数据。在python中爬虫提取数据时re是万能的,所有的数据都可以使用re进行提取。

python正则表达式的使用要借助re模块,安装方法:pip install re

2.正则表达式语法规则

 3.举例说明

# 取出字符串中的整数
str1 = "num12name2age15title666"
re.findall("d",str1)   
# print结果为["12","2","15","666"]


4.常见的使用方法

#从头找一个
re.match()

#找一个
re.search()

#找所有
re.findall()

#替换
re.sub()

#编译
re.compile()

5.python中原始字符串r的用法

原始字符串定义(raw string):所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符,原始字符串往往针对特殊字符而言。例如"n"的原始字符串就是"\n",如果提取的数据中有""要在双引号前面加上r转译

6.匹配中文

在某些情况下,我们想匹配文本中的汉字,有一点需要注意的是,中文的 unicode 编码范围 主要在 [u4e00-u9fa5],这里说主要是因为这个范围并不完整,比如没有包括全角(中文)标点,不过,在大部分情况下,应该是够用的。假设现在想把字符串 title = u'你好,hello,世界' 中的中文提取出来,可以这么做:

import re
# 注意点: 中文匹配 需要设置unicode字符才可以匹配

title = u'你好,hello,世界'
pattern = re.compile(ur'[u4e00-u9fa5]+')
result = pattern.findall(title)

print result

7.万能表达式:

爬虫中用到re的时候可以使用,适用百分之90以上的数据提取

例如:

data = "</div>

 
<h3 class="product-title">
<a href="//chaoshi.detail.tmall.com/item.htm?id=563432946975&amp;rewcatid=51456012" target="_blank"
atpanel="40,563432946975,50012392,919380521,spu,1,spu,">
  【<span class=H>进口</span>】荷兰荷高有机奶全脂<span class=H>纯</span><span class=H>牛奶</span>整箱1L*6盒装送礼礼盒
</a>
</h3>
   <div class="item-summary">
 <div class="item-sum">
   <span>总销量:</span>
 <strong>14233</strong>
     </div>"
# 提取出总销量
"""
1.复制出需要的数据前后这里是总销量:</span><strong>14233</strong></div>"
2. 将需要的数据替换成(.*?)
"""
re.findall("<strong>(.*?)</strong>")

8.遇到字符串中带()怎么办?

将圆括号放入中括号中,例如:

str1 = windoes__("data":['erte','ertert','ertet','uyty'])
# 提取出字符串中的列表
re.findall("windoes__[(]"data":"(.*?)[)])

最后

以上就是难过钢笔为你收集整理的python中三大数据提取方法(3)----正则表达式re库的全部内容,希望文章能够帮你解决python中三大数据提取方法(3)----正则表达式re库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部