正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

python 通过re模块实现

re.search()方法用于在字符串中搜索正则表达式模式第一次出现的位置
搜素不存在的字符串,返回None,

import re
re.search("dawn","dawn likes python")
#<re.Match object; span=(0, 4), match='dawn'>
re.search("yn","dawn likes python")

'.'号,可以匹配除了换行符之外的任何字符

re.search(r'.',"dawn likes python")
<re.Match object; span=(0, 1), match='d'>
re.search(r'py.hon',"dawn likes python")
<re.Match object; span=(11, 17), match='python'>
re.search(r'\.',"dawn likes. python")     #找 点字符
<re.Match object; span=(10, 11), match='.'>

‘\d’,可以匹配任何数字

re.search(r'\d',"dawn likes 134  python")
<re.Match object; span=(11, 12), match='1'>
>>> re.search(r'\d',"dawn likes 1.6  python")
<re.Match object; span=(11, 12), match='1'>
>>> re.search(r'\d\d',"dawn likes 1.4  python")   #无返回结果
>>> re.search(r'\d\d\d',"dawn likes 1.4  python") #无返回结果
#测试
>>> re.search(r'\d\.\d',"dawn likes 1.4  python")
<re.Match object; span=(11, 14), match='1.4'>
>>> re.search(r'\d.\d',"dawn likes 1.4  python")
<re.Match object; span=(11, 14), match='1.4'>
>>> re.search(r'\d..',"dawn likes 1.4  python")
<re.Match object; span=(11, 14), match='1.4'>
>>> re.search(r'..\d',"dawn likes 1.4  python")
<re.Match object; span=(9, 12), match='s 1'>
>>> re.search(r'.\..',"dawn likes 1.4  python")
<re.Match object; span=(11, 14), match='1.4'>

[]:由一对方括号括起来的字符,表明一个字符集合,能够匹配包含在其中的任意一个字符。’-‘ 减号来指定一个字符集合的范围。例子:[a-z] ,[2-9] . (默认情况下是区分大小写的)
[0-255]==[01255],一定注意这是字符集合,所以数字范围为0-9

{m} 精确匹配m次
{m,n} 匹配最少m次,最多n次。(n>m) 指定最少3次:{3,} 最大为5次:{,5}

re.search('ab{3}c','aabbbc')
#<re.Match object; span=(1, 6), match='abbbc'>
re.search('ab{1,10}c','aabbbbbc')
#<re.Match object; span=(1, 8), match='abbbbbc'>

^:匹配除去所列首个字符外的所有字符; ^\d表示必须以数字开头。
KaTeX parse error: Undefined control sequence: \d at position 14: :匹配字符串的尾部字符 \̲d̲表示必须以数字结束

’+ ‘1次或多次匹配 表示匹配前面的规则至少1次,可以多次匹配
’* ‘ 0或多次匹配
’? ‘ 0或1次匹配 只匹配前面的规则0次或1次

\s 匹配间隔符 即匹配空格符、制表符、回车符等表示分隔意义的字符,它等价于[ \t\r\n\f\v]
\b’ 匹配单词边界 它匹配一个单词的边界,比如空格等,不过它是一个‘0’长度字符,它匹配完的字符串不会包括那个分界的字符。
而如果用’\s’来匹配的话,则匹配出的字符串中会包含那个分界符

re.search(r'dawn\s','dawn dawnmdawn')  #有空格
<re.Match object; span=(0, 5), match='dawn '>
re.search(r'dawn\b','dawndawnmdawn')
<re.Match object; span=(9, 13), match='dawn'>

"^"出现在[]的第一个字符位置,就代表取反,例如[ ^ab0-9]表示不是a、b,也不是0-9的数字.
\w 匹配字母和数字 匹配基本所有语言的字符 开启re.ASCII标志即等价于[a-zA-Z0-9]。 \W 等价 [ ^a-zA-Z0-9]

使用括号(…)可以把(…)看出一个整体,经常与"+"、"*"、"?"的连续使用,对(…)部分进行重复.

'\数字’ ascii对应的字符

findall()函数,找到所有,匹配的字符串,打包成列表返回

’ * ?’ ‘ +?’ ‘??’ 最小匹配
‘ * ’ ‘+’ ‘?’通常都是尽可能多的匹配字符(贪婪匹配)。有时候我们希望它尽可能少的匹配。

编译正则表达式
当需要重复使用某各正则表达式的时候 ,可以先正则表达式编译成模式对象
re.compile(正则表达式)

search: 查找任意位置的匹配项
match: 必须从字符串开头匹配
fullmatch: 整个字符串与正则完全匹配

group()
参考文章:python正则表达式
python之正则表达式大全
Python正则表达式,这一篇就够了

python学习之 re库 正则表达式相关推荐

  1. Python学习17 Turtle库绘图

    学习网址:https://docs.python.org/zh-cn/3/library/turtle.html Turtle库 Turtle库是Python语言中一个很流行的绘制图像的函数库,一个小 ...

  2. Python学习-8.2 库(第三方库介绍与下载安装)

    一.第三方库内容介绍 3.1.网络爬虫 网络爬虫是自动进行HTTP访问并捕获HTML页面的程序 requests库 是一个简洁且简单的处理HTTP请求的第三方库.优点:程序编写过程更接近正常URL访问 ...

  3. python学习笔记--turtle库的使用

    turtle库的调用方法 python中其他库的调用方法也一样 1.import <库名> 使用方法:<库名>.<函数名>(函数参数) 使用这种方法的好处就是,当一 ...

  4. Lawliet|Python学习笔记——turtle库

    turtle库--turtle绘图体系的python实现 python的标准库之一 入门级的图形绘制函数库 1. 窗体设置 turtle.setup(width,height,startx,start ...

  5. Lawliet|Python学习笔记——numpy库

    1.numpy库认知 Numpy:表达N维数组的最基础库 库由c语言实现,Python来接口使用,计算速度优异 是Python数据分析及科学计算的基础库,支撑Pandas等 提供直接的矩阵运算.广播函 ...

  6. Lawliet|Python学习笔记——time库

    Time库--Python中处理时间的标准库 计算机时间的表达 提供获取系统时间并格式化输出功能 提供系统级精确计时功能,用于程序性能分析 import time time.<b>()#t ...

  7. Lawliet|Python学习笔记——random库

    Random库-- 是使用随机数的python标准库 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素 random库主要用于生成随机数 import random 1.基本随机数函数 随机数种子 ...

  8. 【python学习】——pyttsx3库实现文本朗读、音量、音速等调节

    import pyttsx3# 初始化朗读引擎 engine = pyttsx3.init() # 设置朗读速度 self.engine.setProperty('rate', 120) # text ...

  9. Python学习笔记-Turtle库简单实例之日期时间显示

    Python语言包含有不少图形工具包,强如Tkinter,底层如python的内置图形库Graphics和Turtle.Turtle库就是通过控制屏幕上小乌龟的移动轨迹绘制图形,本文的一系列操作主要和 ...

最新文章

  1. PHP版本的Graphviz样例之集群流程图
  2. OSChina 周日乱弹 —— 表白的终极境界!
  3. OSNIT信息收集分析框架OSRFramework
  4. Dubbo 高危反序列化漏洞,存在远程代码执行风险,建议及时升级到2.7.7或更高版本!...
  5. Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型 【转】
  6. iphone双卡_放心了:IT之家实测,苹果iPhone 12支持双卡5G
  7. poj 2513 Colored Sticks
  8. Arrays.toList工具类
  9. git新建账号_github 账号创建
  10. 课时2 一些默认样式
  11. 华为最美小姐姐,被外派墨西哥后...
  12. 吃鸡游戏计算机配置,三款畅玩“吃鸡”游戏电脑配置推荐
  13. Python简答题编程题
  14. 安装 Office 2010 错误 error 1935和数据库以及安卓路线
  15. 移动硬盘在电脑上显示为本地磁盘并且出现打不开的情况
  16. 聚观早报|苹果默认不再接受隔空投送;Mete被裁员工将获薪水补偿
  17. 计算机丢失client,FsPiscesClient.dll
  18. 强生单剂新冠疫苗对“德尔塔”有效;赛诺菲巴斯德将每年投资4亿欧元建mRNA疫苗中心 | 美通社头条...
  19. 最简单的视频网站(JavaEE+FFmpeg) 转载自: Mr.Rico
  20. 解决win7win10系统安装金蝶k3老版本客户端问题

热门文章

  1. 解决SVN不显示绿色小对勾
  2. 上证50基金有哪些_上证50指数基金,最全选购攻略
  3. 无线路由速度简单解释
  4. 跨平台次世代游戏引擎Unity 3D
  5. 区块链游戏为何如此火?大概是因为投机者和“韭菜”太多
  6. 一劳永逸的markdown主题~
  7. 安装thunderbird_在Thunderbird中创建签名
  8. C语言人机大战之决战三子棋之巅
  9. 开车,开车,打疫苗以为能收获爱情,结果收到了警方提示,我哭了
  10. python读取nii文件、nii.gz文件