Python的正则,python 菜鸟教程 正则

  Python的正则,python 菜鸟教程 正则

  1.重新匹配函数re。match尝试从字符串的开头匹配一个模式,如果起始位置匹配不成功,match()返回none。

  函数语法:re。匹配(模式,字符串,标志=0)标志是标志位。

  修饰语

  形容

  关于。我

  使匹配不区分大小写。

  关于。l

  进行本地化感知匹配。

  关于。m

  多行匹配,影响和美元

  关于。s

  制造。匹配所有字符,包括换行符。

  关于。u

  根据Unicode字符集分析字符。此标志影响\w、\W、\b和\ b。

  关于。x

  徽标为您提供了更灵活的格式,以便您可以编写更容易理解的正则表达式。

  惰性匹配表达式。*很好理解,就是单个字符匹配任意次,也就是贪婪匹配。

  表情。*?满足条件的情况下只匹配一次,即懒匹配。

  模型

  形容

  \w

  匹配字母、数字和下划线。

  \W

  与字母、数字和下划线不匹配的字符。

  \s

  匹配任何空白字符,相当于[\t\n\r\f]

  \S

  匹配任何非空字符。

  \d

  匹配任意数字,相当于[0-9]

  \D

  匹配任何非数字字符。

  \A

  匹配字符串开始

  \Z

  匹配字符串的结尾,如果有换行符,只匹配换行符之前的结尾字符串。

  \z

  匹配字符串的结尾,如果有换行符,也匹配换行符。

  \G

  完成最后一次匹配的位置。

  \n

  匹配换行符。

  \t

  匹配一个选项卡。

  ^

  匹配字符串的开头。

  $

  匹配字符串的结尾。

  .

  匹配任何字符,除了换行符。当re。DOTALL标志,则可以匹配包括换行符在内的任何字符。

  [.]

  用于表示一组单独列出的字符,如[amk]匹配A、M或k。

  [^.]

  不在[]中的字符,如[ABC],匹配除A、B和c以外的字符。

  *

  匹配了0个或多个表达式

  匹配一个或多个表达式。

  ?

  匹配前面正则表达式定义的0或1个片段,不贪心。

  {n}

  精确匹配前面的n个表达式。

  {n,m}

  匹配由前面的正则表达式定义的段n到m次,贪婪方式

  ab

  匹配a或b

  ( )

  匹配括号中的表达式,该表达式也表示一个组。

  示例:

  进口re

  content= Hello 1234567 World _这是一个正则表达式演示

  结果=re.match(^He.*?(\d)。*演示$ ,内容)

  打印(结果)

  打印(result.group(1))

  总结:1。匹配时,尽量在字符串中间使用非贪婪匹配,即使用。*?而不是。*避免遗漏匹配结果。

  2.如果匹配结果位于字符串的末尾,则为。*?有可能什么都不匹配,因为会匹配尽可能少的字符。

  2.re.search方法re.search扫描整个字符串并返回第一个成功匹配的字符串。

  函数语法:re.search (pattern,string,flags=0)

  re.match和re.search的区别re.match只匹配字符串的开头。如果字符串开头不符合正则表达式,则匹配失败,函数返回none而re.search匹配整个字符串,直到找到匹配项。

  示例:

  html=

  经典老歌

  经典老歌列表

  西蒙伯奇

  大海笑了。

  既往不咎

  光辉岁月/还记得泰坦巨人吗

  笔记本

  祝你长寿

  result=re.search((。*?),html,re。s)

  如果结果:

  print(结果组(1),结果组(2))

  3.检索并替换re.sub(模式,复制,字符串,计数=0)

  Pattern:常规模式中的模式字符串。

  Repl:替换字符串,也可以是函数。

  String:要查找和替换的原始字符串。

  Count:模式匹配后替换的最大次数。默认值0表示替换所有匹配项。

  示例:

  进口re

  content=54aK54yr5oiR54ix5L2g

  content=re sub( \ d ,,content)

  打印(内容)

  4.compile函数compile函数用于编译正则表达式,并生成一个正则表达式(模式)对象,供match()和search()函数使用。

  函数语法:re.pile(模式[,标志])

  示例:

  进口re

  content1=2016-12-15 12:00

  content2=2016-12-17 12:55

  content3=2016-12-22 13:21

  pattern=re . compile( \ d { 2 }:\ d { 2 } )

  结果=re.sub(模式,内容1)

  result2=re.sub(模式,内容2)

  结果=re.sub(模式,内容3)

  打印(结果1,结果2,结果3)

  5.findall*匹配和搜索匹配一次,查找所有匹配全部

  在字符串中查找与正则表达式匹配的所有子字符串,并返回一个列表,如果没有找到匹配,则返回一个空列表。

  函数语法:findall (string [,pos [,end pos]]) String要匹配的字符串。

  Pos可选参数,指定字符串的起始位置。默认值为0。

  Endpos可选参数,指定字符串的结束位置。默认值是字符串的长度。

  6.re.split*注:正则表达式[\w],\w,[\w]有什么区别:

  [\w]和\w没什么区别,都是匹配数字和字母下划线的多个字符;

  [\w]表示匹配数字、字母、下划线和加号本身的字符;

  函数语法:re.split(模式,字符串[,maxsplit=0,标志=0])

  模式匹配正则表达式

  字符串要匹配的字符串。

  Maxsplit分隔次数,maxsplit=1分隔一次,默认值为0,次数不限。

  Flags用于控制正则表达式的匹配方式,如区分大小写、多行匹配等。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: