1. 安装

默认已经安装好了python环境了

re库是python3的核心库,不需要pip install,直接import就行

2. 最简单的模式

字符本身就是最简单的模式

比如:'A', 'I love you', 'test'

然是注意在定义模式字符串的时候,在前面加上r,它的作用是告诉编译器,接下来的字符串是单纯的字符串,请不要转变为转义字符。

例子

importre

pattern= r'Cookie'sequence= 'Cookie're.match(pattern, sequence)

re.match()是常用的函数,如果匹配,返回的是re.Match object.一个库内置的对象。如果没有匹配返回的是None

3. 通配符

在正则表达式中,有些字符是有特殊意义的(不是转义字符的那套规则),下面介绍常用的通配符字符

1)".":点,代表任何字符,除了换行(newline)

re.search(r'Co.k.e', 'Cookie').group()

其中group()函数返回匹配的字符,返回类型是str

'Cookie'

2) "\w" 反斜杠小写w,代表任何单个字母,数字,下划线

re.search(r'Co\wk\we', 'Cookie').group()

'Cookie'

3) "\W" 反斜杠大写W,代表任何2)中没有代表的字符

re.search(r'C\Wke', 'C@ke').group()

'C@ke'

4) "\s" 反斜杠小写s,代表一些空格字符,比如空格(space),换行(new line),跳格键(tab),回车(return)

re.search(r'Eat\scake', 'Eat cake').group()

'Eat cake'

5) "\S" 反斜杠大写S,代表任何4)中没有代表的字符

re.search(r'Cook\Se', 'Cookie').group()

'Cookie'

6) "\t" 反斜杠小写t,代表跳格键(tab)

7) "\n" 反斜杠小写t,代表换行(new line)

8) "\r" 反斜杠小写t,代表回车(return)

9) "\d" 反斜杠小写d,代表单个数字0-9

re.search(r'c\d\dkie', 'c00kie').group()

'c00kie'

10) "^" 这个键不知道叫什么,代表从字符开头要匹配

re.search(r'^Eat', 'Eat cake').group()

'Eat'

11) "$" 美元符号,代表从字符结尾要匹配

re.search(r'cake$', 'Eat cake').group()

'cake'

12) "[abc]" 中括号中任意字符,代表匹配其中任意字符

常用的方式,比如[a-zA-Z0-9],或者如果中括号中第一个字符是"^",代表不是这个范围内的字符

re.search(r'Number: [0-6]', 'Number: 5')

再来个不在范围内的

re.search(r'Number: [^0-6]', 'Number: 7')

4. 重复

第三部分介绍了单个通配符,那么怎么定义一串通配符呢,利用一些重复的标志

1) "+" 加号,表示在它左边的字符出现一次或者多次

re.search(r'Co+kie', 'Cooookie')

2) "*" 乘号,表示在它左边的字符出现零次或者多次

re.search(r'Ca*o*kie', 'Caokie').group()

'Caokie'

3) "?" 问号,表示在它左边的字符出现零次或者一次

re.search(r'Colou?r', 'Color').group()

'Color'

4) {x} 大括号加数字,重复确切几次

5) {x,} 重复至少几次

6) {x, y} 重复至少x次,不超过y次

re.search(r'\d{9,10}', '0987654321').group()

'0987654321'

5. 分组

比如说想定义一个email的格式,@之前的是一个规则,之后的是一个规则,那么通过()圆括号来分为两组,分别定义在一个正则表达式中

然后如果满足的话,通过group()函数指定返回哪一组的结果

比如

email_address = 'Please contact us at: support@datacamp.com'match= re.search(r'([\w+-]+)@([\w\.-]+)', 'tw7613781@gmail.com')ifmatch:print(match.group()) #The whole matched text

print(match.group(1)) #The username (group 1)

print(match.group(2)) #The host (group 2)

tw7613781@gmail.com

tw7613781

gmail.com

@前为第一部分,\w代表代表任何单个字母,数字,下划线,上面已经介绍了,然后就是"\w"和"+"和"-"随便哪一个至少一个或者多个

@后为第二部分,其余一样,就是多了个"\.",因为"."代表的是任意字符了,如果想表达真正的点,用"\."来表示。

6. python库函数re的常用函数

1) re.search(pattern, string)和re.match(pattern, string)

区别在于search能从string中寻找任何满足pattern的substring,但是match必须从头开始

pattern = "cookie"sequence= "Cake and cookie"re.search(pattern, sequence).group()

'cookie'

如果是match会返回None

2) re.findall(pattern, string)

寻找string所有满足pattern的substring,然后以list的形式返回

email_address = "Please contact us at: support@datacamp.com, xyz@datacamp.com"

#'addresses' is a list that stores all the possible match

addresses = re.findall(r'[\w\.-]+@[\w\.-]+', email_address)for address inaddresses:print(address)

support@datacamp.com

xyz@datacamp.com

3) re.compile(pattern)

通过compile函数会生成一个pattern对象,这个pattern对象可以直接使用match,search等函数

In: pattern = re.compile(r"cookie")

In: pattern

Out: re.compile(r'cookie', re.UNICODE)

In: pattern.search('cookie')

Out:

学习材料

python re库函数_python re库的正则表达式学习笔记相关推荐

  1. python plt包_Python 数据可视化-Matplotlib包学习笔记(一)

    Python 数据可视化 本文主要参照Matplotlib的官方教程进行整理,作为个人的学习笔记进行分享,欢迎相互讨论. Matplotlib包学习笔记(一) 本文主要简单介绍一下Matplotlib ...

  2. python字符串库函数_Python标准库概览(1):string

    Python的 string 标准库保留了一些有用的函数和用于处理文本对象的类,现在我们来一起看一下Python的string标准库还有哪些我们不知道的有趣用法? 01.capwords()函数:将字 ...

  3. python随机库函数_python标准库中的随机分布函数

    random.random() 返回一个 随机的浮点数, 值域为 [0.0, 1.0] random.uniform(a, b) 均匀分布 返回一个随机的浮点数N, N的值在a与b之间 等同于 a + ...

  4. python学习笔记项目_python第三方库之Django学习笔记一

    1.安装Django pip install Django 2.版本号查询 python -m django --version 3.创建项目 切换到你想创建项目的目录,执行命令:django-adm ...

  5. python locale模块_python模块babel模块简单学习笔记

    Intro Babel is an integrated collection of utilities that assist in internationalizing and localizin ...

  6. 正则表达式 学习笔记4.3

    下面看看逆序环视结构: public class GeneralSix { public static void main(String[] args) { String[] strings = ne ...

  7. 正则表达式 学习笔记1.3

    书接上一回: 实例五:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...

  8. 日志库 winston 的学习笔记 - logger.info 的实现原理单步调试

    按照这篇文章日志库 winston 的学习笔记 - 创建一个使用 winston 的 Node.js 应用里的代码,对下列方法进行单步调试: 因为我们调用的是 info 方法,所以生成的日志,leve ...

  9. 正则表达式 学习笔记3.4

    第一段为合法html代码,第二段为不合法html代码.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...

最新文章

  1. 日访问量百亿级的应用如何做缓存架构设计
  2. 据阿里云EMR快速搭建数据平台(二)
  3. 使用mspaint查看图片像素
  4. pytorch指定用多张显卡训练_Pytorch多GPU训练
  5. python比较数据工具_Python模拟数据工具哪些比较好用
  6. 推荐15款免费的网页抓取软件
  7. Windows系统通过cmd查找结束进程
  8. 南充一中2021成绩查询高考,2019高考喜报汇总
  9. 计算机管理老是自动打开,电脑老是自动重启怎么回事怎么解决
  10. Tracup丨产品管理与项目管理的区别
  11. 要「自我颠覆」的华为Mate 10来了
  12. hackinglab.cn 注入关之一
  13. 城市道路十字路口的通行规则是“红灯停,绿灯行”,请用信号量和PV操作描述交通信号灯和汽车通过十字路口的同步行为
  14. LaTex学习教程——简单表格(三行线、普通表格)
  15. 2021年茶艺师(中级)考试报名及茶艺师(中级)考试APP
  16. 加州大学圣克鲁兹分校计算机科学,加州大学圣克鲁兹分校排名
  17. 基于卷积神经网络的口罩佩戴识别与检测
  18. openlayer加载天地图 并设置地图颜色为科技蓝
  19. 机器学习(十二)如何选择学习模型以及如何评估和优化你的学习模型?
  20. 机器学习实战4-教育领域:学生成绩的可视化分析与成绩预测-详细分析

热门文章

  1. ASP.NET WebForm中用async/await实现异步
  2. 读取oracle注释
  3. Android系列之Fragment(二)----Fragment的生命周期和返回栈
  4. ROSA 2012 Enterprise Linux Server 发布
  5. 【Excel技巧】如何批量去掉×××号前的单引号
  6. SpringMVC返回Map类型转换成JSON失败
  7. UML-类图-需要写关联名称吗?
  8. 牛客(35)数组中的逆序对
  9. 20165301第十周课下补做
  10. MongoDB对文档的操作