首页 > 其他分享 >正则表达式,re模块

正则表达式,re模块

时间:2023-05-13 20:14:51浏览次数:51  
标签:量词 匹配 正则表达式 所有 re 模块 字符串 元字符

  • 正则表达式,一种独立的规则和语言,主要和字符串打交道
    • 爬虫,从一大段文字中获取符合条件的内容
    • 表单验证,检测一个字符串是否完全符合规则,先通过正则去判断是否符合规则,符合规则再去请求
  • 字符组
    • 匹配所有数字[0-9]
    • 匹配所有小写字母[a-z]
    • 匹配所有大写字母[A-Z]
    • 匹配所有的数字大小写字母[0-9a-zA-Z]
    • 根据ascii码表从小到大顺序匹配,可以一次取多个区间
  • 元字符
    • \d匹配所有的数字,相当于[0-9]
    • \w匹配所有的数字[0-9]大小写字母[a-z,A-Z]下划线_
    • \s匹配所有空白符(空格,回车,tab)
    • \t匹配所有tab
    • \n匹配所有换行符
    • \D匹配所有的非数字
    • \W匹配所有的非字母数字下划线
    • \S匹配所有的非空白符
    • .匹配所有除换行符外任意一个字符
    • ^a匹配一个字符串以a开始
    • a$匹配一个字符串以a结束
    • ^和$组合用必须和字符串完全匹配才可以
    • []字符组匹配中括号里的内容或
    • [^]匹配非括号里所有内容
    • |管道符或,满足条件一个就行,位数长的放前面
    • ^wind123$|^wind$
    • ()分组,一般结合|一起用 类比一下Python的逻辑or
  • 量词
    • {n}匹配n次
    • {n,}匹配n次以上
    • {m,n}匹配最少m次,最多n次
    • 标识出现次数
      • ?匹配0次到1次----非贪婪模式
      • + 1-无穷大
      • * 0-无穷大
    • 贪婪匹配------->尽可能多的匹配,用?阻止贪婪
    • 惰性匹配------->符合条件基础上尽量少的匹配(量词后面的?表示惰性匹配)
  • 只写元字符,一个元字符表示一位字符上的内容
  • 元字符量词结构,量词只约束前面一个元字符
    • (元字符元字符)量词,如ab{3},ab出现3次
  • re模块 配合正则表达式使用python-常用模块 - 断浪狂刀忆年少 - 博客园 (cnblogs.com)
    • re.findall('\w+',s)第一个参数是正则的规则,第二个参数是要匹配的字符串,findall匹配所有匹配项
    • re.search('\d+',s)只匹配从左到右符合条件的第一项,返回的是一个对象,通过.group()方法取值
    • re.match()相当于默认给开头加了^号,返回的是一个对象,通过.group()方法取值、
    • re.split()根据正则切割
    • re.sub()替换
    • re.compile()预编译,正则需要编译,预编译可以节省时间,爬虫使用多
    • re.finditer()节省空间,变成迭代器,通过.group()方法取值、
  • 比较好用的匹配公式 #(.+?)#
  •  

标签:量词,匹配,正则表达式,所有,re,模块,字符串,元字符
From: https://www.cnblogs.com/leo3notblv/p/17398065.html

相关文章

  • 进程,multiprocessing模块
    整个系统进行资源分配调度的最小单位指正在执行的程序程序执行过程中一次指令,也可以交程序的一次执行过程进程是一种动态概念进程由三大部分组成代码段数据段PCB进程管理控制进程的三大基本状态就绪状态已获得运行需要的所有资源除了CPU执行状态已获得运行需......
  • 协程,gevent模块
    多进程,每启动一个程序单开一块空间,单分配一些资源多线程,在一个进程里面开多个线程,让多个线程同时工作,操作系统控制线程对IO操作阻塞感知能力强多协程,在一个线程,跑多个任务,程序控制协程程序是别人写好的模块,所以感知IO操作阻塞能力差gevent可以实现,当函数遇到IO操作(阻......
  • warning Unexpected any. Specify a different type @typescript-eslint/no-explic
    参考链接场景描述使用vue3+ts开发项目时,会遇到很多警告,我们可以在配置文件中关闭它一、警告:warningUnexpectedany.Specifyadifferenttype@typescript-eslint/no-explicit-any解决方案:关闭any类型的警告。//在.eslintrc.js文件中找到rules添加一行代码即可"@ty......
  • 常用模块,time,random,json,os
    模块底层都是c语言写的模块的分类内置模块,不需要自己安装,直接拿过来用扩展模块,第三方模块,需要自己安装本地编辑器安装小白教程(forchange.cn)random随机数.random()不入参,求(0,1)之间的随机数,开区间.randint(a,b)求随机整数,闭区间[a,b].randrange(start,stop,step......
  • CentOS7 虚拟机安装后,网络失败 connect network is unreachable 解决方法
    0001.CentOS7虚拟机安装后,网络失败connectnetworkisunreachable解决方法1590阅读0评论2点赞 connect network is unreachable  一般是网上设置问题,需要进行如下修改:一、虚拟机修改网络配置:1、一般测试虚拟机,建议设置网络为桥接模式,这样跟开发机或......
  • 如何使用prettier全局格式化文件
    安装prettier如果你还没有安装prettier,你可以使用以下命令安装它:npminstall-gprettier进入需要格式化的文件夹在命令行中进入需要格式化的文件夹。 格式化文件使用以下命令批量格式化所有JavaScriptvue文件:prettier--write"src/**/*.js"prettier--write"src/**/*.......
  • gstreamer查看element关系图
    使用gstreamerAPI实现功能时,我一般先用gst-launch-1.0验证可行性和效果,然后再编码实现,这个过程中需要分析下各element的连接关系,而gstreamer提供了一套机制生成dot文件,方便我们查看各个阶段的dot图。命令行命令行只需要设置环境变量GST_DEBUG_DUMP_DOT_DIR即可,例如:GST_DEBUG_D......
  • python requests模块
    requests是Python中用于发送HTTP请求的常用第三方库,可以方便地实现多种请求方式(如GET、POST、PUT、DELETE等),以及文件上传、Cookies管理等功能。以下是requests模块的使用方法和注意事项:安装requests:使用pip命令安装requests库,命令为"pipinstallrequests"。......
  • MapReduce分布式计算(三)
    JSONJSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式.JSON和Java对象的转换movie.txt{"movie":"1193","rate":"5","timeStamp":"978300760","uid":"1"}{"movie":"661",......
  • 三菱FX3U 步进电机换算FB块 FB块的使用可以使程序模块化简单
    三菱FX3U步进电机换算FB块FB块的使用可以使程序模块化简单化,进而提高了程序的稳定性和可移植性。此例中使用FB块,可以实现步进电机的换算,已知距离求得脉冲数,已知速度可以求得频率。程序中包含有FB和ST内容;移植方便,在其他程序中可以直接添加已写好的FB块。ID:6516640576384128......