pyhton基础(13)正则表达式

正则表达式

正则表达式在线测试工具:http://c.runoob.com/front-end/854

使用正则表达式进行匹配的流程:

image-20200922203915144

常用语法

image-20200922215120578

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none

re.match(pattern, string, flags=0)

实例:

image-20200922210405398

运行结果为:

image-20200922210846493

注意:

  • re.match函数匹配返回的是一个re.Match对象,如果需要获取其中的字符串,需要使用group()或者groups()函数。
  • group()用来获取整个正则表达式匹配到的字符串。
  • groups()返回一个包含所有小组字符串的元组
  • group(num)表示返回第num个字符串。
  • flags正则表达式修饰符,默认flags=0,常用标志为IM

举个例子讲一下flags修饰符:

image-20200922214708832

运行结果为:

image-20200922214814309

可以看到,运行结果不受到大小写和换行的影响,这个就是re.M | re.I的作用,后面其它函数若有使用到flags,也是一样的道理。

re.search方法

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

re.search(pattern, string, flags=0)

re.searchre.match用法基本一致,唯一的区别是:

re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配。

re.sub检索和替换

re.sub(pattern, repl, string, count=0, flags=0)

参数:

  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

实例:

image-20200922212046449

运行结果为:

image-20200922212101638

compile函数

回看我们的正则表达式流程,如下,是通过正则表达式对象去匹配结果的:

image-20200922203915144

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match()search() 这两个函数使用。

re.compile(pattern[, flags])

实例:

image-20200922213233725

findall

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

注意: matchsearch 是匹配一次 findall 匹配所有。

实例:

image-20200922213519194

运行结果为:

image-20200922213534327

finditer

findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

re.finditer(pattern, string, flags=0)

实例:

image-20200922213920841

运行结果:

image-20200922214101999

常用表达式

检验数字的表达式

image-20200922215913070

检验字符的表达式

image-20200922215940704

特殊需求表达式

image-20200922220000151

posted @ 2020-08-31 00:01  Whatever_It_Takes  阅读(154)  评论(0编辑  收藏  举报