函数
扫描整个字符串并返回第一个成功的匹配,如果匹配失败search()就返回None。
(1)函数语法:
(pattern,string,flags=0)
函数参数说明:
- pattern 匹配的正则表达式
- string 要匹配的字符串
- flgs 标志位,用于控制正则表达式的匹配方式
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
group(num=0) 获取匹配结果的各个分组的字符串,group() 可以一次输入多个组号,此时返回一个包含那些组所对应值的元组。
- groups() 返回一个包含所有分组字符串的元组。
注意:如果未匹配成功,search()返回值为None,此时再使用group()、groups() 方法会报错。
应该先获取匹配对象,然后判断匹配对象是否非空,当非空时在使用group()、groups() 方法获取匹配结果。见实例2
(2)实例
例1
import re
print((r'How ', 'How are you').span())
#在起始位置匹配
print((r'are', 'How are you').span())
#不在起始位置匹配
输出:
(0, 4)
(4, 7)
例2
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import re
content = 'Hi zeke,how old are you'
result = (r'\d+',content)
if result:
print(())
else:
print('No match!')
rs = (r'\w{4}',content)
if rs:
print(())
else:
print('No match!')
输出:
No match!
zeke
方法
(1) 函数语法
(string, pos=0, endpos=len(string))
函数作用:
这个方法将在字符串string的pos位置开始 尝试匹配pattern(pattern就是通过 ()方法编译后返回的对象),如 果pattern匹配成功,无论是否达到结束位 置endpos,都会返回一个匹配成功后的Match对象;
如果匹配不成功,或者 pattern未匹配结束就达到endpos,则返回 None。
函数参数说明:
- string:被匹配的字符串
- pos:匹配的起始位置,可选,默认为0
- endpos:匹配的结束位置,可选,默认为 len(string)
3. 和区别
方法与()方法 区别在于,它不能指定匹配的区 间pos和endpos两个参数
4. 方法与方法的区别
- 只匹配字符串的开始,如果字符串开始不符合正则表达式, 则匹配失败,并返货None;
- 匹配整个字符串, 直到找到一个匹配,如果整个字符串都没匹配到,则返回None。