# 1. 正则表达式
# 元字符
# . 除了换行符外任意字符
# \w 数字 字母 下划线
# \s 空白符
# \b 单词的末尾
# \d 数字
# \W 除了数字 字母 下划线
# \D 除了数字
# \S 除了空白符
# ^ 开头
# $ 结尾
# [] 匹配字符组中的字符
# [^] 除了字符组内的元素外

# 量词 限定符
# * {0,n} 零或者更多
# + {1,n} 一或更多
# ? {0,1} 零或一
# {p} p次
# {p,}   p次或更多次
# {p,q} 从p到q次
# .*   贪婪匹配 尽可能多的匹配到结果
# .+ # .*? 惰性匹配 是尽可能的少匹配.
# 分组 正则中使⽤()进⾏分组. 如.匹配⼀个相对复杂的⾝份证号
# ^[1-9]\d{14}(\d{2}[0-9x])?$
# ^([1-9]\d{16}[0-9x]|[1-9]\d{14})$
# 转义
# 正则表达式中,有很多有特殊意义的是元字符,如\n和\s等,若要在正则中匹配正常的"\n"⽽不是"换⾏符"需要对"\"进⾏转义, 变成'\\'.
# 而在python中,都是字符串的形式出现,字符串中\也有特殊的含义,本身还需转义.所以匹配⼀次"\n",字符串中要写成'\\n',那么正则就要写成"\\\\n",
# 这样太麻烦.所以这时用r'\n'这个概念,此时的正则是r'\\n'就可以了.
# 如 r"www\.(baidu|google)\.com","www.google.com"
# \n 换行
# \\n \n
# \.
# \/
# \?
# 2. re模块
# findall() 获取到匹配的所有内容
# finditer() 匹配到所有内容。 返回迭代器
# search() 搜索。查到了就返回
# match() 匹配. 从头开始匹配
 # r"(?P<name>正则)"

 import re
res = re.search('e','leiyunse') # 搜索 搜到 一个 结果就返回
print(res.group()) # e res = re.match('\w+','wuwu is not good man') # match 从开头匹配 若匹配到了就返回
print(res.group()) # wuwu lst = re.findall('\w+','wusir and exo') # findall 查找所有 返回list
print(lst) # ['wusir', 'and', 'exo'] it = re.finditer("\w+","mai le fo leng") # 返回迭代器
for el in it:
print(el.group())
'''
mai
le
fo
leng
''' # 分组优先级
lst = re.findall(r"www\.(baidu|google)\.com","www.google.com") # ()最优先返回
print(lst) # ['google'] # (?:) 去掉优先级
lst = re.findall(r"www\.(?:baidu|google)\.com","www.google.com")
print(lst) # ['www.google.com'] # split 切割 若加括号()会保留切的
lst = re.split("([ab])","alex is not a sb,no he is a big sb")
print(lst) # sub 替换
res = re.sub(r"\d+","_sb_","alex111wusir222taibai666ritian999")
print(res) # alex_sb_wusir_sb_taibai_sb_ritian_sb_ # subn 替换 返回元组 带替换次数
res = re.subn(r"\d+","_sb_","alex111wusir222taibai666ritian999")
print(res) # re.compile() # 把正则表达式预加载
obj = re.compile(r"alex\d+and")
res = obj.search("alex222andwusir333taibai666ritian999")
print(res.group()) # alex222and
# 若数字单独拿出来
obj = re.compile(r"alex(?P<name>\d+)and")
res = obj.search("alex222andwusir333taibai666ritian999")
print(res.group()) # alex222and
print(res.group("name")) #





第二十三天- 模块 re的更多相关文章

  1. 《Linux命令行与shell脚本编程大全》 第二十三章 学习笔记

    第二十三章:使用数据库 MySQL数据库 MySQL客户端界面 mysql命令行参数 参数 描述 -A 禁用自动重新生成哈希表 -b 禁用 出错后的beep声 -B 不使用历史文件 -C 压缩客户端和 ...

  2. NeHe OpenGL教程 第二十三课:球面映射

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. javaSE第二十三天

    第二十三天    338 1.进程和线程的概述    338 2.多线程(理解)    339 (1)多线程:一个应用程序有多条执行路径    339 (2)Java程序的运行原理及JVM的启动是多线 ...

  4. Python开发【第二十三篇】:持续更新中...

    Python开发[第二十三篇]:持续更新中...

  5. Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块

    Python第二十二天   stat模块  os.chmod方法  os.stat方法  pwd  grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...

  6. Gradle 1.12用户指南翻译——第二十三章. Java 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  7. “全栈2019”Java多线程第二十三章:活锁(Livelock)详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  8. “全栈2019”Java第二十三章:流程控制语句中决策语句switch上篇

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. 孤荷凌寒自学python第二十三天python类的封装

    孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...

随机推荐

  1. Codeforces Round #439 (Div. 2) A B C

    强哉qls,这场div2竟是其出的!!! A. The Artful Expedient 暴力 ^ ,判断是否出现,有大佬根据亦或的性质推出 Karen 必赢,太强啦23333333333333. # ...

  2. bootstrap 常用class(不定时更新)

    1,字体居右 text-right 2,字体居中 text-center

  3. Java Maven项目的一些补充

    写在前面 在多人开发团队中,规范是非常重要的.To explain it,就像是秦始皇统一货币.度量衡一样,主要的目的是为了降低项目技术架构差异所带来的交流成本,这样开发者就可以尽可能把注意力放在业务 ...

  4. Window Location对象

    window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面. window.location 对象在编写时可不使用 window 这个前缀. Location ...

  5. 自己搞了20万张图片100个分类,tensorflow训练23万次后。。。。。。

    自己搞了20万张图片100个分类,tensorflow训练23万次后...... 我自己把训练用的一张图片,弄乱之后做了一个预测 100个汉字,20多万张图片,tensorflow CNN训练23万次 ...

  6. 剑指offer六十之按之把二叉树打印成多行

    一.题目 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行.二.思路 队列LinkedList完成层序遍历,用end记录每层结点数目 三.代码 import java.util.Arra ...

  7. 如何安装windows7

    前因:之前安装的win7的系统,用了激活工具,刚开始的几个星期还没察觉有何问题.直到有天系统给出异常提示:系统资源不足,无法完成请求的服务.仔细排查之后发现是系统内核句柄数一直增加不释放,句柄数大概有 ...

  8. RocketMQ-Filer

    一.搭建RocketMQ集群 我搭建的是2-master no slave模式,所以在${rocketmq}/conf/2m-noslave/下的 brokder-*.properties 中添加 f ...

  9. 《LeetBook》leetcode题解(20):Valid Parentheses[E]——栈解决括号匹配问题

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  10. Scala的下载和安装(本地)

    前言 Scala版本的选法: 目前,Kafka库和JDBC并不支持Scala2.11的编译,以及结合大多数人的使用请来看.         scala2.10.*为主,在这,scala2.10.4版本 ...