在处理正字符串的时候,经常会有一些复杂规则的字符串需求,
正则表表达式就是描述这些规则的公工具。
换句话说。
正则表达式就是记录文本规则的代码。
上期咱们一起学习了正则表达式re模块提供的match()方法
为什么要学正则表达式 - 5
学习了match()方法对字符串的操作和标识符的区别。
最后通过一个案例明白了match()方法在python中的实际应用。
今天我们来看看re模块提供的另一个search()方法对字符串的操作和在python中实际开发的应用。
使用match()方法匹配字符串
search()方法用于在整个字符串搜索第一个匹配的值,如果匹配成功。则返回Match()对象,否则则返回None。
它的语法格式如下:
re.search(pattern, strings, [flags])
参数:
pattern:表示模式字符串,由要匹配的正则表达式数转换而来.。
strings:表示需要匹配的字符串。
flags:选择参数,用于控制匹配方式。如是否区分字母大小写等。
为了方便比较咱们继续使用昨天的例子来演示search()的使用方法:
我们搜索第一个以s开头的字符串,不区分大小写
pattern = r'sw+' #匹配字符串规则
string = 'Sixty school students seeing surprising sun snow scream, shout simultaneously' #要进行匹配的字符串
match_obj = re.search(pattern, string, re.I) #按照不区分大小写的方式进行匹配
print(match_obj)
#<re.Match object; span=(0, 5), match='Sixty'>
string = r'学生Sixty school students seeing surprising sun snow scream, shout simultaneously'
match_obj = re.search(pattern, string, re.I) #按照不区分大小写的方式进行匹配
print(match_obj)
#<re.Match object; span=(2, 7), match='Sixty'>
从上述例子我们可以看出,search()方法不仅仅是在字符串的起始位置搜索,其他位置有匹配的也会被搜索出来
这是总结
re.match与re.search的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
好了今天的分享就到此了,这两天内容很少很简单,主要是为了让我们可以更好地理解,明天咱们继续干正则表达式!