1.正则模块介绍(正则表达式)
要在python3中使用re,必须引入RE模块
Import re #引入了正则表达式2。使用的主要方法是match(),它从左到右匹配
#pattern是要验证的规则#str是要验证的字符串。result=re.match(pattern,str) #如果结果不是None,则group方法从结果中提取数据。3.正规表达式
1单字符匹配规则
字符功能。匹配任意一个字符(除了n)[]匹配[] d匹配数字中列出的字符,即0-9D匹配非数字,即匹配非数字的字符匹配空格,即空格tabS匹配非空格,s反转w伴随单词字符,A-Z
字符功能*匹配前一个字符0次、多次或无限次,可选,或多或少,匹配前一个字符1次、多次或无限次,直到出现一次?匹配前一个字符一次或0次,一次或不匹配前一个字符{m } m次{m,}匹配前一个字符至少m次{ m,n}匹配前一个字符m到n次示例1 :验证手机号码是否符合规则(不考虑边界问题)
#一、明确手机号码规则#1。它们都是数字2。长度是11 3。第一位是1 4。第二位是35678中的一位。模式=' 1[35678] d { 9 } ' phone ster=' 18230092223 ' result=re。匹配(模式、电话号码)
4.原始字符串raw,首先看下面的示例:
上图中,在给str赋值“nabc”之前添加“r”之后,python解释器会自动给str的值“nabc”添加一个“”。
当字符串被打印时,它可以保持原始字符串值' nabc '被打印。
示例2 :(原始字符串在正则表达式中的应用)
如果没有原来的自付r,我们会做如下操作:给模式加双“”避免转义字符中减少“”。
当我们使用R的原始字符串时,不需要考虑字符串的传递,更容易解决字符匹配的问题。
5.指明边界
字符函数匹配字符串的开头$匹配字符串的结尾 b匹配单词的边界 b匹配非单词边界的边界示例3 :(制定匹配字符串的规则='ho ve r ')
导入re #定义了匹配字符串=1的规则。以字母#2开始。中间有一个空字符#3。ve定义匹配的单词边界模式=r ' w s bve b Sr ' str=' ho ve r ' result=re。匹配(模式,字符串)结果
字符函数|匹配任意表达式(ab)将括号中的字符作为一个组num指字符串(?Pname)被分组为别名(?P=name)引用别名组匹配字符串示例4 :匹配0-100之间的数字
导入re #匹配0到100之间的数字#首先,从左到右正则化开始匹配#经过分析,可以将0到100分成三部分# 1.0 ' 0 $ ' # 2.100 ' 100 $ ' # 3.1-99 '[1-9] D { 0D { 0,1}$'#测试数据为0,3,27,100,123 Result=re。匹配(模式,' 27 ')结果。group()# 0考虑了1-99,上面的模式也可以缩写为: Pattern=r' 100 $ | [1 d{0,1}$'#测试结果如下图所示:
示例5 :匹配分组以获取页面中h1标签中的内容
导入re#匹配分组以获取页面h1标记中的内容。str=你好世界!H1模式=r' h1(。*)/h1 '结果=re。匹配(模式,字符串)结果。group () #执行下图
例6 :组引用,准确获取多个标签的内容
Import re #指分组,准确获取多个标签中的内容。#'1 '是对第一个分组的引用,也是如此.str='spanh1hello world!/h1/span' pattern=r '(。) (.).*/ 2/ 1 '结果=re。匹配(模式,字符串)结果。group()#如下图所示3360
示例7 -2:分组别名
Import re #被分组到alias str='spanh1hello world!/h1/span'pattern='(?Pkey1。)(?Pkey2。)(?Pnr。*)/(?P=key2)/(?P=key1)'结果=re。匹配(模式,字符串)结果。group()#的执行如下图3360所示
以上对python3中RE(正则表达式)的详细总结,是边肖分享的全部内容,希望能给大家一个参考和支持。