re 模块

1. 正则表达式

\w  匹配字母(包含中文)或数字或下划线
\W 匹配非字母(包含中文)或数字或下划线
\s 匹配任意的空白符
\S 匹配任意非空白符
\d 匹配数字
\D 匹配非数字
\A 从字符串开头匹配
\z 匹配字符串的结束,如果是换行,只匹配到换行前的结果
\n 匹配一个换行符
\t 匹配一个制表符
^ 匹配字符串的开始
$ 匹配字符串的结尾
. 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[] 匹配字符组中的字符
[^] 匹配除了字符组中的字符的所有字符
* 匹配0个或者多个左边的字符。
+ 匹配一个或者多个左边的字符。
? 匹配0个或者1个左边的字符,非贪婪方式。
{n} 精准匹配n个前面的表达式。
{n,m} 匹配n到m次由前面的正则表达式定义的片段,贪婪方式
ab 匹配a或者b
() 匹配括号内的表达式,也表示一个组

2. 匹配模式

import re
s = "宝元-meet_123daskd nnnmmmadda"
print(re.findall("\w",s)) #查找数字,字母(中文),下划线
print(re.findall("\W",s)) #查找非数字,字母(中文),下划线 print(re.findall("\s",s)) #查找任意空格,换行符,制表符
print(re.findall("\S",s)) #查找非任意空格,换行符,制表符 print(re.findall("\d",s)) #查找数字
print(re.findall("\D",s)) #查找非数字 print(re.findall("^宝元",s)) #查找是否已什么开头,没有返回列表中空字符串
print(re.findall("a$",s)) #查找是否以什么结尾的内容 print(re.findall("\n",s)) #查找换行符
print(re.findall("\t",s)) #查找制表符 print(re.findall("m.e",s)) # .只能匹配非换行符的任意一个内容
print(re.findall("m.e",s,re.DOTALL)) #.匹配任意一个内容 print(re.findall("[a-z]",s)) # 小写的a,z
print(re.findall("[a-z0-9]",s)) # 小写的a,z和数字 0,9
print(re.findall("[^0-9]",s)) # [^0-9] 查找非0-9的内容 print(re.findall("m*",s)) # * 匹配0个或多个 [贪婪匹配],不是的用空字符串添加
print(re.findall("me+",s)) # me,mee,meee,meeeee...
# + 匹配1个或多个 [贪婪匹配] 不添加空字符串
print(re.findall("m?",s)) # ? 匹配 0个或1个 [非贪婪匹配] print(re.findall("n{3}",s)) # n{3} n重复3次 == nnn
print(re.findall("s{1,3}",s)) # s{1,3} s ss sss
# 指定最少多少次,最多多少次 print(re.findall("m|s",s)) # m或者s
# 分组()
s = "meet_assdf_mssst_(.)mmns_aaamaaatmsssssstt"
print(re.findall("m(.+)t",s))
# ['eet_assdf_mssst_(.)mmns_aaamaaatmsssssst']
print(re.findall("m(.+?)t",s))
#['ee', 'sss', 'mns_aaamaaa', 'ssssss']
print(re.findall("m(?:..)t",s)) #['meet'] 将mt也打印出
# 取出以_sb结尾的
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)) # 不包含数字

3. 常用方法

# search:  (从任意位置找)找到1个后就停止查找了,从字符串中进行查找.找到后返回的是一个对象,查看元素.group()
print(re.search("me",s).group())
# match:  找到1个后就停止查找了,只从字符串的开头查找.找到后返回的是一个对象,查看元素.group()  没有返回None
print(re.match("me",s).group())
# split: 分割,可按照任意分隔符进行分割
print(re.split("[#,:!*]",s))
# sub: 替换
print(re.sub("旧","新",s))
# compile: 定义匹配规则
obj = re.compile("\w")
print(obj.findall("meet_宝元"))
# finditer: 返回一个迭代器地址 ,可用.group() 或者for读取
g = re.finditer("\w","meet_宝元")
print(next(g).group())
for i in g:
print(i.group())
# 给分组起名字
m(?P<名字>\w+)t.group("名字")
print(re.search("(?P<a>\w+)dfa","asbsadfasdfa")
.group("a")) # asbsadfas

python 18 re模块的更多相关文章

  1. 十八. Python基础(18)常用模块

    十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...

  2. 第11.18节 Python 中re模块的匹配对象

    匹配对象是Python中re模块正则表达式匹配处理的返回结果,用于存放匹配的情况.老猿认为匹配对象更多的应该是与组匹配模式的功能对应的,只是没有使用组匹配模式的正则表达式整体作为组0. 为了说明下面的 ...

  3. python(九)re模块

    python中re模块提供了正则表达式相关操作. 1. 字符串匹配: .    匹配除换行符以外的任意字符 \w 匹配字符或数字或下划线或汉字 \s  匹配任意空白字符 \d 匹配数字 \b 匹配单词 ...

  4. Python中optionParser模块的使用方法[转]

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...

  5. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  6. python基础之模块之os模块

    os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小…… 另 ...

  7. python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  8. python中string模块各属性以及函数的用法

    任何语言都离不开字符,那就会涉及对字符的操作,尤其是脚本语言更是频繁,不管是生产环境还是面试考验都要面对字符串的操作.     python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串 ...

  9. 【Python之路】第六篇--Python基础之模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

随机推荐

  1. Java:前程似锦的 NIO 2.0

    Java 之所以能够霸占编程语言的榜首,其强大.丰富的类库功不可没,几乎所有的编程问题都能在其中找到解决方案.但在早期的版本当中,输入输出(I/O)流并不那么令开发者感到愉快: 1)JDK 1.4 之 ...

  2. vue项目目录结构详解

    项目简介基于 vue.js 的前端开发环境,用于前后端分离后的单页应用开发,可以在开发时使用 ES Next.scss 等最新语言特性.项目包含: 基础库: vue.js.vue-router.vue ...

  3. web设计_2_灵活的文字

    最佳设计:可以让用户自由控制任何页面的文字大小. 浏览器中用户都是可以自定义默认的文字大小的,如果使用 px,用户自行在浏览器设置中改变了文字大小后,网页上是不会变化的.我们不能排除视障用户(如近视) ...

  4. 二进制文件安装安装etcd

    利用二进制文件安装安装etcd etcd组件作为一个高可用强一致性的服务发现存储仓库. etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点 ...

  5. C# 二维码的生成

    nuget 搜索qrcodenet,然后选择下载gma.qrcodenet public partial class Form1 : Form { public Form1() { Initializ ...

  6. 用python twilio模块实现发手机短信的功能

    前排提示:这个模块不是用于对陌生人进行短信轰炸和电话骚扰的,这个模块也没有这个功能,如果是抱着这个心态来的,可以关闭网页了 语言:python 步骤一:安装twilio模块 pip install t ...

  7. div 环形排列

    javascript-按圆形排列DIV元素(一)---- 分析 效果图: 一.分析图: 绿色边框内:外层的DIV元素,相对定位; 白色圆形框:辅助分析的想象形状; 白点:为白色圆形的圆心点,中心点,点 ...

  8. dubbo负载均衡是如何实现的?

    dubbo的负载均衡全部由AbstractLoadBalance的子类来实现 RandomLoadBalance 随机 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀 ...

  9. 浅入深出Vue:自动化路由

    在软件开发的过程中,"自动化"这个词出现的频率是比较高的.自动化测试,自动化数据映射以及各式的代码生成器.这些词语的背后,也说明了在软件开发的过程中,对于那些重复.千篇一律的事情. ...

  10. AUTOSAR学习之RTE - 可运行实体

    本文介绍RTE的运行体(runnable). An AUTOSAR component defines one or more "runnable entities". A run ...