首页 > 编程语言 >python3正则-表达式

python3正则-表达式

时间:2023-04-15 12:57:08浏览次数:32  
标签:字符 匹配 pattern re 正则 python3 任意 表达式

1、介绍

这里整理了表达式,即pattern参数的语法。其本质是一个str类型。

2、开始和结尾

(1)^

  • ^匹配字符串的开头

(2)$

  • $匹配字符串的末尾

(3)整体匹配

  • 同时使用^和$

3、匹配次数

(1)贪婪匹配和非贪婪匹配模式

  • 贪婪匹配,在允许的范围内尽可能多的匹配表达式次数。比如*、+、{n, m}等
  • 非贪婪匹配,在允许的范围内尽可能少的匹配表达式次数。使用?

(2)*

  • 匹配0或任意多次表达式

(3)+

  • 匹配至少1次表达式

(3)?

  • 匹配0或1次表达式
  • 这是非贪婪模式,即如果有匹配,只匹配1次

(4){n}

  • 精确匹配n次表达式

(5){n,m}

  • 匹配n-m范围内数目的表达式次数
  • 如果是{n,}表示最少,{,m}表示最多

4、包含和不包含

(1)[]

  • 表示匹配一个字符,其是在[和]之间的任意字符
  • 在[]之内除了-字符,其他字符都是作为单个的匹配字符,表示其本身,包括.+*?等

(2)[^]

  • 表示匹配一个字符,其是在[^和]之间的字符之外的任意字符

5、字符替代

(1)-

  • 使用-可以将数字和字母进行很方便的范围指定,比如a-z,0-3,A-G

(2).

  • .匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符
  • 注意,.字符在[]或[^]中时,仅表示.字符本身,即使此时设置为flags=re.DOTALL。实际上,这也是合理的,毕竟如果想要匹配所有字符,直接使用.且指定flags=re.DOTALL,替代[.]更有效。
  • 如果不想指定flags,那么可以使用[\s\S]这样的操作

(3)\集合

\小写字母表示包含,\大写字母表示非,匹配的都是一个字符

  • \w 匹配字母数字及下划线
  • \W 匹配非字母数字及下划线
  • \s 匹配任意空白符,等价于[ \t\n\r\f]
  • \S 匹配任意非空白字符
  • \d 匹配任意数字,等价于[0-9]
  • \D 匹配任意非数字

(4)\转义字符

  • \n 换行符
  • \r
  • \t 制表符

6、()

()可以定义表达式

  • 如果没有(),那么*等操作的表达式是其前面的单独的字符(比如a)、转义字符(比如\n)等
  • 而()可以定义一个表达式,在此基础上可以设置匹配次数等操作

()也可以作为分组,这需要使用的函数进行搭配

  • 单匹配的match、fullmatch和search函数不支持分组,会匹配pattern表示的整体,并返回整体部分,作为re.Match类型对象。当然,调用re.Match类型对象的groups方法,可以进行分组操作
  • findall函数支持分组
    • 当pattern中不存在()时,是普通的匹配,将待匹配字符串中所有的匹配项作为list的直接元素
    • 当pattern中存在一个()时,按照pattern进行匹配,但只将()中的范围作为list的直接元素
    • 当pattern中存在不止一个()时,每一个pattern匹配的结果作为list的一个元素,类型是元组tuple(),而元组内的元素是pattern中各()定义的范围。其序列是先从外到内,然后从左到右包含在元组中。

标签:字符,匹配,pattern,re,正则,python3,任意,表达式
From: https://www.cnblogs.com/wd404/p/17320894.html

相关文章

  • python3正则-修饰符flags
    1、介绍在re模块的函数中,多数允许设置修饰符flags参数,其用于对匹配做优化和个性设置。2、修饰符修饰符实质上是int参数类型,可以直接指定int类型,也可以通过re调用变量名称指定。修饰符描述re.I使匹配对大小写不敏感re.L做本地化识别(locale-aware)匹配re.M多行......
  • python3正则-Match类
    1、介绍re.match、re.fullmatch和re.search这三个函数,如果存在匹配,其返回pattern初次匹配的结果,类型就为re.Match。2、类和初始化3、方法pattern="(ab)c"result=re.match(pattern=pattern,string="abcdef")print(result)(1)start获取pattern整体匹配的开始索引,返回类......
  • python3正则-编译和其他
    1、介绍将作为pattern参数的str类型,编译返回Pattern类型,方便后续调用,提高效率。re模块下存在多个函数,可以进行编译,返回类型是Pattern。Pattern类具有和re正则匹配函数类似的方法,当然在参数上略有不同,比如是将待匹配文本作为Pattern类的参数。2、compile函数pattern=re.comp......
  • python3时间
    1、介绍time模块是python的内部模块。2、函数#返回float类型,1670592065.0852547形式#print(time.time())#print(type(time.time()))#休眠,单位秒#time.sleep(5)#print(123)#返回int类型,1670592289035206400形式#print(time.time_ns())#print(type(time.time_......
  • python3正则-替换和切割函数
    1、介绍这里整理sub、subn和split三个函数的使用。2、sub函数sub(pattern,repl,string,count=0,flags=0)pattern,正则表达式repl,替换文本string,待处理字符串count,表示替换的最大次数。默认为0表示全部替换flags,标志,处理模式作用是在flags代表的模式下,匹配strings指......
  • python3正则-多匹配函数
    1、介绍这里介绍findall和finditer两个函数。2、findall函数findall(pattern,string,flags=0)pattern,正则表达式string,待处理字符串flags,标志,处理模式返回类型为list,如果不存在匹配,返回空列表[]。如果存在匹配,则返回全部匹配项,这里需要注意()的影响2.1无()importr......
  • python3正则-单匹配函数
    1、介绍re模块是python3用于处理正则的模块。这里介绍三个函数,re.match、re.fullmatch和re.search的使用。其都是如果匹配,则返回re.Match类对象,为初次匹配项。不匹配则返回None。且()不影响匹配结果,只是匹配过程中对需要匹配的描述。2、match函数match(pattern,string,fla......
  • Python 利用正则表达式和filter函数 筛选序列(列表等)
    在 Python 中,序列类型包括字符串、列表、元组、集合和字典http://c.biancheng.net/view/4312.htmlPython内建的filter()函数用于过滤序列https://www.liaoxuefeng.com/wiki/1016959663602400/1017404530360000序列内逐个元素筛选filter并用list保存结果筛选的判断条件是re.match......
  • python3多线程-线程池和优先队列
    1、介绍有两种线程池方案。各线程持续存在,从任务池获取任务进行执行按照需求创建线程,每个线程只执行一个任务,结束完毕则该线程结束2、准备(1)任务池task_list任务池是用于准备各任务单元的环境,比如http爆破时的请求参数,读写文件时的路径。任务池的准备可能会占用一定时间,边准......
  • bash shell 无法使用 perl 正则
      哈喽大家好,我是咸鱼。今天跟大家分享一个关于正则表达式的案例,希望能够对你有所帮助案例现象前几天有一个小伙伴在群里求助,说他这个shell脚本有问题,让大家帮忙看看   可以看到,这个脚本首先将目标文本文件的名字当作该脚本的第一个参数($1)传递进去,然后查看这个文本......