Python正则表达式_常用匹配方法match

2022-10-11 10:39:48

正则匹配方法之match

一、pattern.match()方法:
语法: match(string=None, pos=0, endpos=9223372036854775807, *, pattern=None)
函数作用: 在字符串string的pos位置开始尝试匹配pattern,如果匹配成功无论是否到达结束位置endpos,都会返回一个匹配成功后的Match对象;如果匹配未成功或者pattern未匹配结束就达到endpos,则返回None
参数说明:
string:被匹配的字符串
pos: 匹配的起始位置,可选,默认为0
endpos:匹配的结束位置,可选,默认为len(string)

#encoding=utf-8
import re

p = re.compile(r'\d+')
#不指定匹配区间
m1 = p.match('123abc')
if m1:
    print('匹配的内容为:',m1.group())
else:
    print('没有匹配的内容')

#指定匹配区间
m2 = p.match('123abc',2)
if m2:
    print('匹配的内容为:',m2.group())
else:
    print('没有匹配的内容')

#指定匹配区间,结束位置超过字符串长度,不会报错
m3 = p.match('123abc',2,10)
if m3:
    print('匹配的内容为:',m3.group())
else:
print('没有匹配的内容')

执行结果如下:
在这里插入图片描述

二、 re.match()方法:
语法: match(pattern, string, flags=0)

函数作用: 在字符串string的起始位置开始尝试匹配pattern,如果匹配成功返回一个匹配成功后的Match对象;否则返回None。

参数说明:
pattern:匹配的正则表达式
string:被匹配的字符串
flags: 标志位,用于控制正则表达式的匹配方式,如是否区分大小写,是否匹配多行等

match=re.match('\d\s\w','1 Abs',re.I)
if match:
   print ('匹配的内容为:',match.group())
else:
   print ('未找到匹配内容')

# 执行结果--->   匹配的内容为: 1 A

总结一下两者的区别:
re.match()方法与pattern.match()方法的区别在于,re.match()不能指定匹配的区间的起始位置和终点位置。

  • 作者:小菜鸡也会有春天
  • 原文链接:https://blog.csdn.net/weixin_50640351/article/details/115434865
    更新时间:2022-10-11 10:39:48