python正则表达式详解,python正则表达式菜鸟教程

  python正则表达式详解,python正则表达式菜鸟教程

  正则表达式提供了一些可用的匹配模式,如忽略大小写、多行匹配等。下面这篇文章主要介绍一些关于python正则表达式的常见知识点,通过示例代码介绍的非常详细,有需要的朋友可以参考一下。

  一.导言二搜索方法的使用。匹配方法(只匹配字符串的开头)2。搜索方法(扫描整个字符串以找到第一个匹配项)3。重新匹配和重新搜索的区别4。findall方法(扫描整个字符串以查找所有匹配)5。finditer方法(扫描整个字符串以找到所有匹配,并返回一个迭代对象)III。re简介。匹配IV类。正则表达式模式1、非打印字符2、特殊字符3、定位符4、限定词5、替换6、贪婪模式和非贪婪模式7。例1,匹配用户名2,匹配手机号码3,匹配0到99之间的号码摘要

  

目录

  正则表达式是一种特殊的字符序列,是计算机科学的一个概念。它通常用于检索和替换符合特定模式(规则)的文本。

  许多编程语言都支持使用正则表达式进行字符串操作。在Python中需要通过正则表达式匹配字符串时,可以使用re模块。Re模块使Python语言具备了所有的正则表达式函数。

  

一、介绍

  

二、查找方法的使用

  Re.match尝试从字符串的开头匹配一个模式,如果不成功,match()返回none。如果匹配成功,则返回一个Match对象,并调用group()方法来获取其值。

  Group(0)返回整个匹配的所有内容(默认值为0)。

  函数语法:

  re.match(模式,字符串,标志=0)

  

1、match方法(只匹配字符串开头)

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

  函数语法:

  重新搜索(模式,字符串,标志=0)

  

2、search方法(扫描整个字符串,找到第一个匹配)

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

  

3、re.match与re.search的区别

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

  匹配和搜索匹配一次,findall匹配所有。

  语法格式:

  re.findall(模式,字符串,标志=0)

  示例:

  p class="maodian">

  

5、finditer方法(扫描整个字符串,找到所有的匹配,并返回一个可迭代对象)

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

  

ret = re.finditer(r\d+,he23ll34) # 得到的结果是一个可迭代对象

  for x in ret: # 遍历 ret 取出里面的每一项匹配

   print(x.group(), x.span()) # 匹配对象里的group保存了匹配的结果

  

  

三、re.Match类介绍

  当我们调用re.match方法、re.search方法,或者对re.finditer方法的结果进行迭代时,拿到的数据类型都是re.Match对象。

  

  

  

  

四、正则表达式模式

  

  

1、非打印字符

  

  

  

2、特殊字符

  

  

  

3、定位符

  

  

  

4、限定符

  

  

  

五、替换

  语法:

  

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

  

  

  

  

六、贪婪模式和非贪婪模式

  Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;

  非贪婪则相反,总是尝试匹配尽可能少的字符。

  在*,?,+,{m,n}后面加上?使贪婪变成非贪婪。

  

  

  

七、示例

  

  

1、匹配用户名

  用户名匹配:由数字、大小写字母、下划线_和中横线-组成,长度为4到14位,并且不能以数字开头。

  ^在括号外就是开头,在括号里就是取反

  \D匹配一个非数字字符,等价于[^0-9]

  [a-z0-9A-Z_\-]{3,13}表示可取范围为a-z的小写字母和数字0-9以及下划线中横线都可以,写在中括号里面的是与的关系,最后的大括号代表的是其匹配长度为[3-13](左闭右闭)(因为开头已经有一位是确定的了,所以后面的长度为[3-13])

  

r'^\D[a-z0-9A-Z_\-]{3,13}', 'sH_8'

  

  

  

2、匹配手机号

  根据手机号的规则,对手机号前三位的格式进行了限制,因为有几种格式都可以,条件之间的关系为或,正则表达式中用表示

  

r'^((13[0-9])(14[57])(15([0-3][5-9]))(18[0,5-9]))\d{8}$'

  

  

  

3、匹配0~99之间的数字

  开头是【1-9】中的一个数,个数为0或者1均可

  后面的是【0-9】中的一个数,个数为0或者1

  

r'^[1-9]?[0-9]?$'

  

  

  

总结

  到此这篇关于python正则表达式常见知识点的文章就介绍到这了,更多相关python正则表达式知识点内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

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

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