re.search 扫描整个字符串并返回第一个成功的匹配,若是匹配失败search()就返回None。正则表达式
re.search(pattern, string, flags=0)
pattern 匹配的正则表达式ide
string 要匹配的字符串函数
flgs 标志位,用于控制正则表达式的匹配方式spa
group(num=0) 获取匹配结果的各个分组的字符串,group() 能够一次输入多个组号,此时返回一个包含那些组所对应值的元组。code
groups() 返回一个包含全部分组字符串的元组。对象
注意:若是未匹配成功,search()返回值为None,此时再使用group()、groups() 方法会报错。blog
应该先获取匹配对象,而后判断匹配对象是否非空,当非空时在使用group()、groups() 方法获取匹配结果。见实例2
字符串
以上输出结果为:string
(0, 3) (4, 7)
import re content = 'Hi zeke,how old are you' result = re.search(r'\d+' , content) if result: print result.group() else: print 'No match!' rs = re.search(r'\w{4}' , content) if rs: print rs.group() else: print 'No match!'
以上执行结果以下:
it
No match!
zeke
pattern.search( string, pos=0, endpos=len(string))
这个方法将在字符串string的pos位置开始 尝试匹配pattern(pattern就是经过 re.compile()方法编译后返回的对象),如 果pattern匹配成功,不管是否达到结束位 置endpos,都会返回一个匹配成功后的Match对象;
若是匹配不成功,或者 pattern未匹配结束就达到endpos,则返回 None。
string:被匹配的字符串
pos:匹配的起始位置,可选,默认为0
endpos:匹配的结束位置,可选,默认为 len(string)
re.search方法与pattern.search()方法 区别在于,它不能指定匹配的区 间pos和endpos两个参数
re.match只匹配字符串的开始,若是字符串开始不符合正则表达式, 则匹配失败,并返货None;
re.search匹配整个字符串, 直到找到一个匹配,若是整个字符串都没匹配到,则返回None。