re模块的结果小练习题
1.匹配标签
import re
ret = re.search('<(?P<tag_name>\w+)>\w+</(?P=tag_name)>','<h1>hello</h1>')
#还可以在分组中利用?P<name>的形式给分组起名字
#获取的匹配结果可以直接用group('名字')拿到对应的值
print(ret.group())
print(ret.group('tag_name')) # -------------------------
ret = re.search(r'<(\w+)>\w+</\1>','<h1>hello</h1>')
#如果不给分组起名字,也可以用\序号来找到对应的组,表说要找的内容和前面的组的内容一致
#获取的匹配结果可以直接用group(序号)拿到对应的值
print(ret.group())
print(ret.group(1))
匹配标签
2.匹配整数
import re
ret = re.findall(r'\d+',"1-2*(60+(-40.35/5)-(-4*3))")
print(ret) import re
ret = re.findall(r'-?\d+\.\d*|(-?\d+)',"1-2*(60+(-40.35/5)-(-4*3))")
print(ret) ret.remove('')
print(ret)
数字匹配
3.数字匹配
# 3.数字匹配
# 1.匹配一段文本中的每行的时间字符串,比如’1990-07-12‘ # 1.分别取出一年的十二个月:
while True:
cmd = input('请输入月份:>>')
if re.match(r'^(0?[1-9]|1[0-2])$',cmd):
print('格式正确')
else:
print('格式错误') # 2.
ret =re.match(r'^(0?[1-9]|1[0-2])$','')
print(ret.group()) # 一个月的31天
ret = re.match(r'^((0?[1-9])|((1|2)[0-9])|30|31)$','')#从头匹配
print(ret.group()) # 匹配QQ号
while True:
cmd = input('请输入你扣扣号:>>')
if re.match(r'^[1-9][0-9]{4,10}$',cmd):
print('输入正确')
else:
print('输入错误') # 浮点数
ret = re.match(r'-?\d+\.?\d*','21.5')
print(ret.group())
数字匹配
4.爬虫练习
import requests import re
import json def getPage(url): response=requests.get(url)
return response.text def parsePage(s): com=re.compile('<div class="item">.*?<div class="pic">.*?<em .*?>(?P<id>\d+).*?<span class="title">(?P<title>.*?)</span>'
'.*?<span class="rating_num" .*?>(?P<rating_num>.*?)</span>.*?<span>(?P<comment_num>.*?)评价</span>',re.S) ret=com.finditer(s)
for i in ret:
yield {
"id":i.group("id"),
"title":i.group("title"),
"rating_num":i.group("rating_num"),
"comment_num":i.group("comment_num"),
} def main(num): url='https://movie.douban.com/top250?start=%s&filter='%num
response_html=getPage(url)
ret=parsePage(response_html)
print(ret)
f=open("move_info7","a",encoding="utf8") for obj in ret:
print(obj)
data=json.dumps(obj,ensure_ascii=False)
f.write(data+"\n") if __name__ == '__main__':
count=0
for i in range(10):
main(count)
count+=25
re模块的结果小练习题的更多相关文章
- python中os模块的一些小总结
(一)os模块的应用小总结 os.name: 获取当前系统平台,Windows下返回'nt',Linux下返回'posix'. os.linesep: 获取当前平台使用的行终止符.Windows下 ...
- APP | edxposed框架+trustmealredy模块抓包小程序
出品|MS08067实验室(www.ms08067.com) 本文作者:ketchup(Ms08067实验室 SRSP TEAM小组成员) 一.下载edxposed框架,由于安卓5.0版本以下的不支持 ...
- 学习笔记之09小练习题(js:从小到大输出三个任意数,查成绩,相亲题,查体重,一元二次方程求根)
<script type="text/javascript"> /*第一题.输入三个整数,x,y,z,最终以从小到大的方式输出. 注意小点:1 字符串的拼接是用+,数学 ...
- windows平台python svn模块的一个小 bug
环境 编程语言版本:python 2.7 操作系统:win10 64位 模块名:svn svn checkout时报错 File "D:\Python27\lib\site-package ...
- npm、模块暴露,小知识点区别
--save-dev与--save的区别 npm install xxx --save-dev 是指将包信息添加到 package.json 里的 devDependencies节点,表示开发时依赖的 ...
- PHP小练习题
前几天在百度知道里面看到有位网友询问如何制作一下的小程序:用php语言设计一个小程序,计算今天到达下月的天数.全部输出这些天数,并使得每天的日期以三种颜色循环显示,设置三个表单,让用户选择字体颜色,然 ...
- 第5模块闯关CSS练习题
1.列举你知道的css选择器? 说道css选择器,大家都知道有许多种,但是真要你去掰着手指头数一数的话,你可能需要数几分钟.其实这么多选择器,完全可以分为两类: 标签选择器(*是特殊情况),可但标签, ...
- Python入门 .变量 常量 基础数据类型 用户输入 流程控制语句 小练习题
# 2.name = input(“>>>”)通过代码来验证name变量是什么数据类型?--str name = input(">>>") pr ...
- Odoo14 给模块/应用加小图标
# apps中的图标是固定路劲: static/description/icon.png # 主页图标是通过你的主menuitem的web_icon来设置的: <menuitem id=&quo ...
随机推荐
- vue.js 生命周期
boforeCreate 创建之前 created 创建之后 boforeMount 实例化之前 mounted 实例化之后 话不多说,直接上代码 & ...
- 交叉编译 tesseract
官方参考资料说明: tesseract 依赖库: (https://github.com/tesseract-ocr/tesseract/wiki/Compiling#linux) leptoni ...
- 解决React Native unable to load script from assets index.android.bundle on windows
React Native运行的时候,经常碰到React Native unable to load script from assets index.android.bundle on windows ...
- THINKPHP 3.2 PHP SFTP上传下载 代码实现方法
一.SFTP介绍:使用SSH协议进行FTP传输的协议叫SFTP(安全文件传输)Sftp和Ftp都是文件传输协议.区别:sftp是ssh内含的协议(ssh是加密的telnet协议), 只要sshd服 ...
- tensorflow softmax_cross_entropy_with_logits函数
1.softmax_cross_entropy_with_logits tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=Non ...
- 【Log4j】分包,分等级记录日志信息
在开发中我们经常会将不同包下的日志信息在不同的地方输出,以便于以后出问题能够直接在对应的文件中找到对应的信息! 例如:在spring+SpringMVC+mybatis的框架中,我们经常会将sprin ...
- Java第三次上课课堂试验博文
1.Java字段初始化的规律: 运行如下所示的代码 package demo; public class InitializeBlockDemo { /** * @param args */ publ ...
- 网关(Gatesvr) 设计(1)
Gate解决的问题: 1.用户在服务端的实例可以在不同的进程中,也可以移动到同一个进程中.2.用户只需要与服务端建立有限条连接,即可以访问到任意服务进程.这个连接的数量不会随服务进程的数量增长而线性增 ...
- 初学Python(九)——函数
初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x) ...
- Android学习笔记- ButterKnife 8.0注解使用介绍
前言: App项目开发大部分时候还是以UI页面为主,这时我们需要调用大量的findViewById以及setOnClickListener等代码,控件的少的时候我们还能接受,控件多起来有时候就会有一种 ...