import re    引用re模块

查找  

  finall:匹配所有,每一项都是列表中的一个元素

  search:只匹配从左到右的第一个,得到的不是直接的结果而是一个变量,通过group方法获取结果,没有匹配到会返回None,使用group会报错

  match:从头开始匹配,相当于search中的正则表达式加上一个^

字符串处理的扩展: 替换 切割

  split  切割

  sub  替换  格式re.sub(旧的,新的,字符串,替换次数)

  subn  返回一个元组,第二个元素是替换的次数

re模块的进阶:时间/空间

  compile  节约你使用正则表达式解决问题的时间  

 ret = re.compile('\d+')   # 已经完成编译了
print(ret)
res = ret.findall('alex83taibai40egon25')
print(res)

  finditer  节省你使用正则表达式解决问题的空间/内存

ret = re.finditer('\d+','alex83taibai40egon25')
for i in ret:
print(i.group())

rearch()  .group()   括号中的数字代表的是去对应分组中的内容

 import re
s = '<a>wahaha</a>' # 标签语言 html 网页
ret = re.search('<(\w+)>(\w+)</(\w+)>',s)
print(ret.group()) # 所有的结果
print(ret.group(1)) # 数字参数代表的是取对应分组中的内容

findall()  中有一个特殊的语法,优先显示正则表达式中()括号的内容

取消分组优先(?:正则表达式)

    ret = re.findall('\d+(?:\.\d+)?','1.234*4')

     print(ret)

关于分组:

  1、对正则表达式来说,有时候我们需要进行分组,来约束某一字符出现的次数(\.[\w]+)? 

  2、对python语言来说,分组可以帮助你更好更精准的找到你真正需要的内容,例<(\w+)>(\d+)<

split

 ret = re.split('\d+','alex83taibai40egon25')
print(ret)
ret = re.split('(\d+)','alex83taibai40egon25aa')
print(ret)

python 与正则表达式 之间的特殊约定

  1、分组命名(?P<这个组的名字>正则表达式)

  2、使用前面的分组,要求使用这个名字的分组和前面同名分组中的内容匹配的必须一致

pattern = '<(?P<tab>\w+)>(\w+)</(?P=tab)>'
ret = re.search(pattern,s)
print(ret

day 17 re模块 正则表达式的更多相关文章

  1. Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

  2. 【Python开发】Python之re模块 —— 正则表达式操作

    Python之re模块 -- 正则表达式操作 这个模块提供了与 Perl 相似l的正则表达式匹配操作.Unicode字符串也同样适用. 正则表达式使用反斜杠" \ "来代表特殊形式 ...

  3. 17。3.12---re模块--正则表达式操作指南

    1----python re模块(Regular Expressioin正则表达式)提供了一个与perl等编程语言类似的正则匹配操作,他是一个处理python字符串的强有力的工具,有自己的语法和独立的 ...

  4. s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译

    时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...

  5. re 模块 正则表达式

    re模块(正则表达式)   一.什么是正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它 ...

  6. 第四章: 4.1 logging模块 | 正则表达式

    修改json数据然后写入json文件中 f = open('1234.json','r',encoding='utf-8') data = f.read() data1 = json.loads(da ...

  7. Python3 学习第十四弹: 模块学习六之re模块 + 正则表达式 (转)

    本文转自 AstralWind 的博客:Python正则表达式指南 特来收藏 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有 ...

  8. re模块——正则表达式操作

    一.什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中,并通过 r ...

  9. re(模块正则表达式)

    re模块(正则) ​ 正则是用一些具有特殊含义的符号组合到一起(成为正则表达式)来描述字符或者字符串的方法,或者说正则就是用来描述一类事物的规则. import re #从字符串中全部查找内容,返回一 ...

随机推荐

  1. markdown(typora)基本语法

    目录 * 标题 * 加粗 * 斜体 * 高亮 * 上标 * 下标 * 代码引用(>式和```式) * 代码引入(`式) * 插入链接(链接显示) * 插入链接(连接描述显示) * 插入图片(链接 ...

  2. Process类调用exe,返回值以及参数空格问题

    (方法一)返回值为int fileName为调用的exe路径,入口参数为para,其中多个参数用空格分开,当D:/DD.exe返回值为int类型时. Process p = new Process() ...

  3. SpringBoot 逻辑异常统一处理

    构建项目 我们将逻辑异常核心处理部分提取出来作为单独的jar供其他模块引用,创建项目在parent项目pom.xml添加公共使用的依赖,配置内容如下所示: <dependencies> & ...

  4. SpringBoot的Banner

    一 官方文档介绍 1 自定义横幅 通过在 classpath 中添加banner.txt文件或将banner.location设置为此类文件的位置,可以更改启动时打印的横幅.如果文件具有异常编码,则可 ...

  5. Nexus安装(Windows)

    1. nexus下载 官网下载:https://www.sonatype.com/download-oss-sonatype 网盘下载:https://pan.baidu.com/s/1CXOW7Lv ...

  6. mysql如何解除死锁状态

    第一种: 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程(如果您有SUPER权限,您可以看到所有线程.否则,您只能看到您自己的线程) sho ...

  7. 《JavaScript设计模式与开发实践》-- 单例模式

    详情个人博客:https://shengchangwei.github.io/js-shejimoshi-danli/ 原来只是听过设计模式,却不晓得其真面目,今天,终于步入了设计模式学习的殿堂,想想 ...

  8. 自闭版节奏大C

    1,2,3,4打碟 #include <bits/stdc++.h> #include <conio.h> #include <windows.h> using n ...

  9. [BZOJ4553][HEOI2016/TJOI2016]序列

    传送门 好像是DP再套个裸的CDQ? 树套树是不可能写树套树的,这辈子都不可能写树套树的 对于一个 \(i\) ,设它最小为 \(a_i\) ,原数为 \(b_i\) ,最大为 \(c_i\) \(f ...

  10. jq实现监听滚动条导致导航栏变色

    1效果图 2 html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...