re模块的应用
import re
# 正则表达式中的转义 :
# '\(' 表示匹配小括号
# [()+*?/$.] 在字符组中一些特殊的字符会现出原形
# 所有的 \w \d \s(\n,\t, ) \W \D \S都表示它原本的意义
# [-]只有写在字符组的首位的时候表示普通的减号
# 写在其他位置的时候表示范围[1-9]
# 如果就是想匹配减号 [1\-9] # 在python中使用正则表达式
# 转义符 : 在正则中的转义符 \ 在python中的转义符
# re模块
# findall search match
# ret=re.findall("\d+","weiydga16278364ahdiui7733")
# print(ret)
# print(ret)
# ret1=re.search("\d+","weiydga16278364ahdiui7733")
# print(ret1)
# if ret1:print(ret1.group())
# ret2=re.match("\d+","weiydga16278364ahdiui7733")
# print(ret2)
# if ret2:print(ret2.group()) # sub subn split模块用法
# ret=re.sub("\d+","H","weiydga16278364ahdiui7733",1)
# print(ret)
# ret1=re.subn("\d+","H","weiydga16278364ahdiui7733")
# print(ret1)
# ret2=re.split("\d+","weiydga16278364ahdiui7733")
# print(ret2) # compile finditer模块用法:compile节省时间效率,finditer节省空间效率
# ret3=re.compile("\d+")
# ret4=ret3.search("weiydga16278364ahdiui7733")
# print(ret4.group())
# ret5=re.finditer("\d+","weiydga16278364ahdiui7733")
# for r in ret5:
# print(r.group())
# flags有很多可选值:compile中的参数
# re.I(IGNORECASE)忽略大小写,括号内是完整的写法
# re.M(MULTILINE)多行模式,改变^和$的行为
# re.S(DOTALL)点可以匹配任意字符,包括换行符
# re.L(LOCALE)做本地化识别的匹配,表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境,不推荐使用
# re.U(UNICODE) 使用\w \W \s \S \d \D使用取决于unicode定义的字符属性。在python3中默认使用该flag
# re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释 # python中的正则表达式:
# findall 会优先显示分组中的内容,要想取消分组优先,(?:正则表达式)
# ret=re.compile('-0\.\d+|-[1-9]\d*(?:\.\d+)?')
# c1=ret.findall('-1asdada-200')
# print(c1)
# ret=re.compile('\d+(?:\.\d+)|(\d+)')
# ret1=ret.findall("1-20*(40.25-23)+25")
# print(ret1)
# ret1.remove("")
# print(ret1) # split 遇到分组 会保留分组内被切掉的内容
# ret=re.split("(\d+)","eyau123ausui234aips")#保留了数字
# print(ret) # search 如果search中有分组的话,通过group(n)就能够拿到group中的匹配的内容
# 匹配标签,匹配整数,数字匹配,爬虫
# ret=re.search("<(\w+)>\w+<(\w+)>\w+<(\w+)>","<a>asd<b>aasd<c>")
# print(ret.group())
# print(ret.group(1))
# print(ret.group(2))
# print(ret.group(3))
# search的分组命名:1.(?P<命名>)2.\1
# ret=re.search("<(?P<name>\w+)>\w+</(?P=name)>","<h>adcf</h>")
# print(ret.group())
# print(ret.group("name")) # ret=re.search(r"<(\w+)>\w+</(\1)>","<h>adcf</h>")
# print(ret.group())
# print(ret.group(1)) # ret=re.search("<(?P<name>\w+)>\w+<(?P<sex>\w+)>\w+<(?P<age>\w+)>","<a>asd<b>aasd<c>")
# print(ret.group())
# print(ret.group('name'))
# print(ret.group('sex'))
# print(ret.group('age')) # 爬虫代码块:
# from urllib.request import urlopen
# # # 内置的包 来获取网页的源代码 字符串
# # res = urlopen('https://www.douban.com/')
# # print(res.read().decode('utf-8'))
# from urllib.request import urlopen
# res=urlopen("baidu")
# print(res.red.decode("utf-8")) # 分别使用while循环,和for循环计算1-3+5-7+9-11...99的结果 # print(re.findall(r'\\c',"asnadb\c"))
re模块的应用的更多相关文章
- npm 私有模块的管理使用
你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- ES6模块import细节
写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...
- Python标准模块--ContextManager
1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...
- Python标准模块--Unicode
1 模块简介 Python 3中最大的变化之一就是删除了Unicode类型.在Python 2中,有str类型和unicode类型,例如, Python 2.7.6 (default, Oct 26 ...
- Python标准模块--Iterators和Generators
1 模块简介 当你开始使用Python编程时,你或许已经使用了iterators(迭代器)和generators(生成器),你当时可能并没有意识到.在本篇博文中,我们将会学习迭代器和生成器是什么.当然 ...
- 自己实现一个javascript事件模块
nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...
- 理解nodejs模块的scope
描述 原文档地址:https://docs.npmjs.com/misc/scope 所有npm模块都有name,有的模块的name还有scope.scope的命名规则和name差不多,同样不能有ur ...
- nodejs模块发布及命令行程序开发
前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫 ...
- 开始学nodejs——net模块
net模块的组成部分 详见 http://nodejs.cn/api/net.html 下面整理出了整个net模块的知识结构,和各个事件.方法.属性的用法 net.Server类 net.Socket ...
随机推荐
- springcloud第八步:hystrix解决服务雪崩
断路器(Hystrix) 为什么需要 Hystrix? 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用(RPC).为了保证其高可用,单个服务又必须集群部署.由于网络原因或者自 ...
- 学号 20175313 《实验三 敏捷开发与XP实践》实验报告
目录 实验三 敏捷开发与XP实践 一.实验内容 二.实验步骤 四.心得体会 五.码云链接 六.参考资料 实验三 敏捷开发与XP实践 一.实验内容 (1)编码标准 在IDEA中使用工具(Code-> ...
- js篇-数组合并其中属性值相同的项目且属性值相加
项目背景是:var a = [{id:1,num:"12"},{id:2,num:"13"},{id:3,num:"3"},{id:2,nu ...
- python基础之 装饰器,内置函数
1.闭包回顾 在学习装饰器之前,可以先复习一下什么是闭包? 在嵌套函数内部的函数可以使用外部变量(非全局变量)叫做闭包! def wrapper(): money =10 def inner(num) ...
- MySQL InnoDB Online DDL学习
MySQL Online DDL这个新特性是在MySQL5.6.7开始支持的,更早期版本的MySQL进行DDL对于DBA来说是非常痛苦的.现在主流版本都集中在5.6与5.7,为了更好的理解Online ...
- Oracle中对XMLType的简单操作(extract、extractvalue...)
Oracle中对XMLType的简单操作(extract.extractvalue...) 1.下面先创建一个名未test.xml的配置文件. <?xml version="1. ...
- 【电子书分享】Learning PySpark下载,包含pdf、epub格式
<Learning PySpark>电子书下载链接: 链接:http://pan.baidu.com/s/1skAC6LZ 密码:kbse,包括pdf.epub格式: (--学习愉快--)
- servlet中如何实现通过Spring实现对象的注入
@WebServlet("/BaseServlet")public class BaseServlet extends HttpServlet { private static f ...
- SV-assertion
断言(assert)是一种描述性语言,通过描述的期望结果来进行仿真验证. 断言有一个更加基础的信息,我们称为属性(property),属性可以作为断言结果,功能覆盖点,形式检查和约束随机激励生成. 断 ...
- 新增职责 不能从IE进入的问题 此责任无可用函数 (转)
此责任无可用函数(The Function Is Not Available Under The Responsibility) When attempting to navigate to a fu ...