1.匹配标签

 1 import re
2 ret = re.search('<(?P<tag_name>\w+)>\w+</(?P=tag_name)>','<h1>hello</h1>')
3 #还可以在分组中利用?P<name>的形式给分组起名字
4 #获取的匹配结果可以直接用group('名字')拿到对应的值
5 print(ret.group())
6 print(ret.group('tag_name'))
7
8
9 # -------------------------
10 ret = re.search(r'<(\w+)>\w+</\1>','<h1>hello</h1>')
11 #如果不给分组起名字,也可以用\序号来找到对应的组,表说要找的内容和前面的组的内容一致
12 #获取的匹配结果可以直接用group(序号)拿到对应的值
13 print(ret.group())
14 print(ret.group(1))

匹配标签

2.匹配整数

 1 import re
2 ret = re.findall(r'\d+',"1-2*(60+(-40.35/5)-(-4*3))")
3 print(ret)
4
5 import re
6 ret = re.findall(r'-?\d+\.\d*|(-?\d+)',"1-2*(60+(-40.35/5)-(-4*3))")
7 print(ret)
8
9 ret.remove('')
10 print(ret)

数字匹配

3.数字匹配

1 # 3.数字匹配
2 # 1.匹配一段文本中的每行的时间字符串,比如’1990-07-12‘
3
4 # 1.分别取出一年的十二个月:
5 while True:
6 cmd = input('请输入月份:>>')
7 if re.match(r'^(0?[1-9]|1[0-2])$',cmd):
8 print('格式正确')
9 else:
10 print('格式错误')
11
12 # 2.
13 ret =re.match(r'^(0?[1-9]|1[0-2])$','')
14 print(ret.group())
15
16 # 一个月的31天
17 ret = re.match(r'^((0?[1-9])|((1|2)[0-9])|30|31)$','')#从头匹配
18 print(ret.group())
19
20 # 匹配QQ号
21 while True:
22 cmd = input('请输入你扣扣号:>>')
23 if re.match(r'^[1-9][0-9]{4,10}$',cmd):
24 print('输入正确')
25 else:
26 print('输入错误')
27
28 # 浮点数
29 ret = re.match(r'-?\d+\.?\d*','21.5')
30 print(ret.group())

数字匹配

4.爬虫练习

 1 import requests
2
3 import re
4 import json
5
6 def getPage(url):
7
8 response=requests.get(url)
9 return response.text
10
11 def parsePage(s):
12
13 com=re.compile('<div class="item">.*?<div class="pic">.*?<em .*?>(?P<id>\d+).*?<span class="title">(?P<title>.*?)</span>'
14 '.*?<span class="rating_num" .*?>(?P<rating_num>.*?)</span>.*?<span>(?P<comment_num>.*?)评价</span>',re.S)
15
16 ret=com.finditer(s)
17 for i in ret:
18 yield {
19 "id":i.group("id"),
20 "title":i.group("title"),
21 "rating_num":i.group("rating_num"),
22 "comment_num":i.group("comment_num"),
23 }
24
25 def main(num):
26
27 url='https://movie.douban.com/top250?start=%s&filter='%num
28 response_html=getPage(url)
29 ret=parsePage(response_html)
30 print(ret)
31 f=open("move_info7","a",encoding="utf8")
32
33 for obj in ret:
34 print(obj)
35 data=json.dumps(obj,ensure_ascii=False)
36 f.write(data+"\n")
37
38 if __name__ == '__main__':
39 count=0
40 for i in range(10):
41 main(count)
42 count+=25

re模块的小练习的更多相关文章

  1. pandas模块实现小爬虫功能-转载

    pandas模块实现小爬虫功能 安装 pip3 install pandas 爬虫代码 import pandas as pd df = pd.read_html("http://www.a ...

  2. Python 工匠:一个关于模块的小故事

    前言 模块(Module)是我们用来组织 Python 代码的基本单位.很多功能强大的复杂站点,都由成百上千个独立模块共同组成. 虽然模块有着不可替代的用处,但它有时也会给我们带来麻烦.比如,当你接手 ...

  3. os模块学习小随笔

    os模块为python解释器与操作系统交互的接口 os.popen()   -------Open a pipe to or from command. The return value is an ...

  4. nodejs .http模块, cheerio模块 实现 小爬虫.

    代码: var http = require("http"); var cheerio = require("cheerio"); var url = 'htt ...

  5. 金融新手投标模块布局小Demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 什么是英特尔® Edison 模块?

    英特尔® Edison 模块 是一种 SD 卡大小的微型计算芯片,专为构建物联网 (IoT) 和可穿戴计算产品而设计. Edison 模块内含一个高速的双核处理单元.集成 Wi-Fi*.蓝牙* 低能耗 ...

  7. 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...

  8. 轻量级模块化开发框架 Hasor 核心模块 v0.0.2 发布

    首先引用Wiki的介绍一下Hasor:     “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然 而Ha ...

  9. [自娱自乐] 2、超声波测距模块DIY笔记(二)

    前言 上一节我们已经大致浏览下目前销售的超声波测距模块同时设计了自己的分析电路,这次由于我买的电子元件都到了,所以就动手实验了下!至写该笔记时已经设计出超声波接收模块和超声波发射模块,同时存在超声波发 ...

随机推荐

  1. 【HANA系列】SAP HANA SQL获取时间中的小时

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL获取时间 ...

  2. Git本地初始化并推送到远程仓库

    git常用命令 1.全局配置git用户名邮箱 git config --global user.name '你的名字' git config --global user.email '你的邮箱地址' ...

  3. webdriervAPI(By声明定位方法)

    from  selenium  import  webdriver from  selenium.webdriver.common.by  import  By 导入By方法 driver  =  w ...

  4. 深入理解java:4.3.1. 框架编程之MyBatis---SQL语句执行的完整流程

    Mybatis的整个的执行流程.如下图所示: 原理详解: MyBatis应用程序根据XML配置文件创建SqlSessionFactory, SqlSessionFactory在根据配置,配置来源于两个 ...

  5. session到底是何时何地生成的

    关于session,之前只是在用,从没考虑到底怎么生成的 今天有空我做了个实验,把监控了一下访问某网站第一二次的请求响应详细信息,终于搞明白了,好了,开始放图  这里发起一个请求,然后我们看下第一次请 ...

  6. [Python3] 035 函数式编程 高阶函数

    目录 函数式编程 之 高阶函数 1. 引子 2. 系统提供的高阶函数 3. functools 包提供的 reduce 4. 排序 函数式编程 之 高阶函数 把函数作为参数使用的函数,叫高阶函数 1. ...

  7. ABC133F Small Products

    考虑 DP. 状态 令 $f[\ell][x]$ 表示长度为 $\ell$,首项不超过 $x$ 的序列的个数. 答案是 $f[K][N]$. 有递推 $f[\ell][x] = f[\ell][x - ...

  8. reids集群状态正常redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster

    重新启动redis集群时启动失败,报错: redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachab ...

  9. 第一个SpringMVC应用流程总结

  10. 第二章:排序算法 及其他 Java代码实现

    目录 第二章:排序算法 及其他 Java代码实现 插入排序 归并排序 选择排序算法 冒泡排序 查找算法 习题 2.3.7 第二章:排序算法 及其他 Java代码实现 --算法导论(Introducti ...