Python模块03/re模块
Python模块03/re模块
内容大纲
re模块(正则表达式)
1.re模块(正则表达式)
import re
s = "meet_宝元_meet"
print(re.findall("meet",s))
从字符串中全部查找内容,返回一个列表
s = "meet_宝元_meet123"
print(re.findall("\w",s))
查找数字,字母(中文),下划线
# s = "meet_宝元_meet123!@#"
# print(re.findall("\W",s))
# 查找非数字,字母(中文),下划线
# s = "meet_ 宝元_ me et\t \n"
# print(re.findall("\s",s))
# 查找任意空格,换行符,制表符
# s = "meet_ 宝元_ me et\t \n"
# print(re.findall("\S",s))
# 查找非任意空格,换行符,制表符
s = "meet_ 宝元_123me et\t \n"
print(re.findall("\d",s))
查找数字
print(re.findall("\D",s))
查找非数字
# s = "meet宝元_123meet\t \n"
# print(re.findall("\Ameet",s))
# print(re.findall("^meet",s))
# 查找是否以什么开头的内容
# s = "meet宝元_123meet"
# print(re.findall("t\Z",s))
# print(re.findall("t$",s))
# 查找是否以什么结尾的内容
# s = "meet宝元_123meet \n \t \n"
# print(re.findall("\n",s))
# 查找换行符
# print(re.findall("\t",s))
# 查找制表符
# s = "m\net宝元_123maet \n \t "
# print(re.findall("m.e",s))
# .只能匹配任意一个内容(非换行符)
# s = "m\net宝元_123maet \n \t "
# print(re.findall("m.e",s,re.DOTALL))
# .只能匹配任意一个内容
# s = "meet宝元_1A-23maet"
# print(re.findall("[a-z]",s)) # 小写的a,z
# print(re.findall("[A-Z]",s)) # 大写的A,Z
# print(re.findall("[A-Za-z]",s)) # 大写和小写的a,z A,Z
# print(re.findall("[a-z0-9]",s)) # 小写的a,z 数字 0,9
# s = "meet宝元_1A-23maet"
# print(re.findall("[^0-9]",s)) # [^0-9] 查找非0-9的内容
s = "mmmmmm"
print(re.findall("m*",s)) # * 匹配 0个多个 [贪婪匹配]
s = "meet_asdf_msss_mmns_aaam" # + 匹配1个或多个 [贪婪匹配]
print(re.findall("me+",s)) # me,mee,meee,meeeee,
s = "meet_asdf_msss_mmns_aaam" # ? 匹配 0个或1个 [非贪婪匹配]
print(re.findall("m?",s))
# s = "meet_asdf_msss_mmns_aaam" # s{3} s重复3次 == sss
# print(re.findall("s{3}",s))
# s = "meet_assdf_msss_mmns_aaam"
# print(re.findall("s{1,3}",s)) # s{1,3} s ss sss
# 指定最少多少次,最多多少次
# a|b # 或
# s = "meet_assdf_msss_mmns_aaam"
# print(re.findall("m|s",s)) # m或者s
# s = "meet_assdf_mssst_(.)mmns_aaamaaatmsssssssssssstt"
# print(re.findall("m(.+)t",s))
# s = "meet_assdf_mssst_(.)mmns_aaamaaatmsssssssssssstt"
# print(re.findall("m(?:..?)t",s))
# s = 'alex_sb ale123_sb wu12sir_sb wusir_sb ritian_sb 的 alex wusir '
# print(re.findall("\w+_sb",s))
# print(re.findall("[a-z]+_sb",s))
s = '_sb alex 123_sb wu12sir_sb wusir_sb ritian_sb 的 x wusir '
print(re.search("ale",s).group())
search 找到1个后就停止查找了,从字符串中进行查找.找到后返回的是一个对象,查看元素.group()
s = '_sb alex 123_sb wu12sir_sb wusir_sb ritian_sb 的 x wusir '
print(re.match("ale",s).group())
match 找到1个后就停止查找了,只从字符串的开头查找.找到后返回的是一个对象,查看元素.group()
# s = '_sb alex,123:sb;wu12sir#sb*wusir!sb ritian_sb 的 x wusir '
# print(re.split("[#,:!*]",s))
# 分割
# 替换
# print(re.sub("barry","太亮",'barry是最好的讲师,barry就是一个普通老师,请不要将barry当男神对待。'))
# compile # 定义匹配规则
# obj = re.compile("\w")
# print(obj.findall("meet_宝元_常鑫垃圾"))
# re.findall("\w","meet_宝元_常鑫大煎饼")
# finditer # 返回是一个迭代器的地址
# g = re.finditer("\w","常鑫垃圾")
# print(next(g).group())
# for i in g:
# print(i.group())
# print(re.findall("常(.*?)娃","常鑫垃圾_井盖_烧饼吃娃娃_自行车_葫芦爷爷救娃娃"))
# print(re.findall("常(.*?)娃","常鑫垃圾_井盖_烧饼吃娃娃_自行车_葫芦爷爷救娃娃"))
# print(re.search("(?P<tag_name>\w+)\w+\w+","h1hellh1"))
# print(re.search("(?P<aaa>\w+)dfa","asbsadfasdfa").group("aaa"))
# print(re.search("(?P<cx>\w+)dfa","asbsadfasdfa").group())
# 1 "1-2*(60+(-40.35/5)-(-4*3))"
# 1.1 匹配所有的整数
# s = "1-2*(60+(-40.35/5)-(-4*3))"
# print(re.findall("\d+",s))
# 匹配所有的数字(包含小数)
# print(re.findall("\d+\.\d+|\d+",s))
# 匹配所有的数字(包含小数包含负号)
# print(re.findall("-?\d+\.\d+|-?\d+",s))
# s = "http://blog.csdn.net/make164492212/article/details/51656638"
# print(re.findall("h.*2/",s))
s1 = '''
时间就是1995-04-27,2005-04-27
1999-04-27 老男孩教育创始人
老男孩老师 alex 1980-04-27:1980-04-27
2018-12-08
'''
# print(re.findall("\d+-\d+-\d+",s1))
# 匹配qq号:腾讯从10000开始
# qq = input("请输入QQ号:")
# print(re.findall("[1-9][0-9]{4,9}",qq))
s1 = '''
<div id="cnblogs_post_body" class="blogpost-body"><h3><span style="font-family: 楷体;">python基础篇</span></h3>
<p><span style="font-family: 楷体;"> <strong><a href="http://www.cnblogs.com/guobaoyuan/p/6847032.html" target="_blank">python 基础知识</a></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/p/6627631.html" target="_blank">python 初始python</a></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <strong><a href="http://www.cnblogs.com/guobaoyuan/articles/7087609.html" target="_blank">python 字符编码</a></strong></strong></span></p>
<p><span style="font-family: 楷体;"><strong><strong> <a href="http://www.cnblogs.com/guobaoyuan/articles/6752157.html" target="_blank">python 类型及变量</a></strong></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/p/6847663.html" target="_blank">python 字符串详解</a></strong></span></p>
<p><span style="font-family: 楷体;"> <strong><a href="http://www.cnblogs.com/guobaoyuan/p/6850347.html" target="_blank">python 列表详解</a></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/p/6850496.html" target="_blank">python 数字元祖</a></strong></span></p>
<p><span style="font-family: 楷体;"> <strong><a href="http://www.cnblogs.com/guobaoyuan/p/6851820.html" target="_blank">python 字典详解</a></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <strong><a href="http://www.cnblogs.com/guobaoyuan/p/6852131.html" target="_blank">python 集合详解</a></strong></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/articles/7087614.html" target="_blank">python 数据类型</a> </strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/p/6752169.html" target="_blank">python文件操作</a></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/p/8149209.html" target="_blank">python 闭包</a></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/articles/6705714.html" target="_blank">python 函数详解</a></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/articles/7087616.html" target="_blank">python 函数、装饰器、内置函数</a></strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/articles/7087629.html" target="_blank">python 迭代器 生成器</a> </strong></span></p>
<p><span style="font-family: 楷体;"><strong> <a href="http://www.cnblogs.com/guobaoyuan/articles/6757215.html" target="_blank">python匿名函数、内置函数</a></strong></span></p>
</div>
'''
# print(re.findall("<span(.*?)>",s1))
# print(re.findall('<a href="(.*?)"',s1))
2.今日总结
# re -- 正则表达式
import re
# re.findall()
# re.search()
# re.match()
# re.sub()
# re.split()
# re.finditer()
# \w
# \d
# ^
# $
# m()t m(?:)t
# [] [^]
# {}
# | 或者
# \. == 转义成普通的.
# * 0或多
# + 1或多
# ? 0或1
# *? 限制*
# .* 一个任意元素重复出现0次或多次
# m(?P<名字>\w+)t group("名字")
Python模块03/re模块的更多相关文章
- Python进阶03 模块
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们之前看到了函数和对象.从本质上来说,它们都是为了更好的组织已经有的程序,以方便 ...
- Python模块之常用模块,反射以及正则表达式
常用模块 1. OS模块 用于提供系统级别的操作,系统目录,文件,路径,环境变量等 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("di ...
- Python自动化之常用模块
1 time和datetime模块 #_*_coding:utf-8_*_ __author__ = 'Alex Li' import time # print(time.clock()) #返回处理 ...
- Python学习笔记-常用模块
1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...
- Python处理时间 time && datetime 模块
Python处理时间 time && datetime 模块 个人整理,获取时间方式: import datetime import time #获取当前时间:Thu Nov 03 ...
- Python开发【第一篇】Python基础之自定义模块和内置模块
为什么要有模块,将代码归类.模块,用一砣代码实现了某个功能的代码集合. Python中叫模块,其他语言叫类库. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代 ...
- Day5 - Python基础5 常用模块学习
Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shel ...
- python笔记之常用模块用法分析
python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...
- Python学习之路——模块
一.模块: 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...
随机推荐
- pip应用实例
homepage 目录 1. 安装 1.1. 指定版本 1.2. 用户权限 1.3. 读取requirments.txt 1.4. 不使用缓存文件 1.5. 指定extras_require 2. 镜 ...
- @codeforces - 575E@ Spectator Riots
目录 @description@ @solution@ @accepted code@ @details@ @description@ 一个以 (0, 0) 为左下角,(10^5, 10^5) 为右上 ...
- 使用阿里云K8S 服务,丢失访问中原始IP 问题
解决步骤: 1. 利用kubectl 修改 k8s 配置, 设置 external** = Local 2. 在服务发现与负载均衡界面,选择对应的LB 服务, 设置服务LB 的 external** ...
- (八)easyexcel的使用
使用手册:https://www.yuque.com/easyexcel/doc/easyexcel 主要注意的点就是修改监听器为通用的监听器 原监听器: package read; import j ...
- 使用SSH远程管理时本地文件被修改了
背景: 有两个网段:1段作为工作网段即员工办公用:2段作为专用网段配置了一系列需要的环境. 在Ubuntu 16.04用Python的SSH工具在对这两个网段远程管理,我写了一个检测环境的脚本,用SF ...
- 使用Docker构建企业Jenkins CI平台
在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要.目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部 ...
- 重学 Java 设计模式:实战命令模式「模拟高档餐厅八大菜系,小二点单厨师烹饪场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 持之以恒的重要性 初学编程往往都很懵,几乎在学习的过程中会遇到 ...
- 微信小程序for循环遍历
wxml: <block wx:for="{{data}}" wx:for-item="data"> & ...
- ceph bluestore与 filestore 数据存放的区别
一. filestore 对象所在的PG以文件方式放在xfs文件中 1 查看所有的osd硬盘,跟其他linux其他硬盘一样,被挂载一个目录中. [root@hz-storage1 ~]# df -h ...
- IDEA版本彩虹屁插件idea-rainbow-fart,一个在你编程时疯狂称赞你的 IDEA扩展插件
缘起 是否听说过程序员鼓励师,不久前出了一款vscode的插件rainbow-fart,可以在写代码的时候,匹配到特定关键词就疯狂的拍你马屁. vscode的下载尝试过,但是作为日常将IDEA作为主力 ...