python正则表达式(4)--search⽅法
re.search 扫描整个字符串并返回第⼀个成功的匹配,如果匹配失败search()就返回None。
(1)函数语法:
re.search(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(re.search(r'How', 'How are you').span()) # 在起始位置匹配
print(re.search(r'are', 'How are you').span()) # 不在起始位置匹配
以上输出结果为:
(0, 3)
(4, 7)
例2
import re
content = 'Hi zeke,how old are you'
result = re.search(r'\d+' , content)
if result:
up()
else:
print'No match!'
rs = re.search(r'\w{4}' , content)
if rs:
up()
else:
print'No match!'
以上执⾏结果如下:
No match!
zeke
2.pattern.search⽅法
(1) 函数语法
pattern.search( string, pos=0, endpos=len(string))
函数作⽤:
这个⽅法将在字符串string的pos位置开始尝试匹配pattern(pattern就是通过 repile()⽅法编译后返回的对象),如果pattern匹配成功,⽆论是否达到结束位置endpos,都会返回⼀个匹配成功后的Match对象;
如果匹配不成功,或者 pattern未匹配结束就达到endpos,则返回 None。
函数参数说明:
string:被匹配的字符串
pos:匹配的起始位置,可选,默认为0
endpos:匹配的结束位置,可选,默认为 len(string)
3. re.search和pattern.search区别
re.search⽅法与pattern.search()⽅法区别在于,它不能指定匹配的区间pos和endpos两个参数
4. re.match⽅法与re.search⽅法的区别
python正则表达式匹配小数 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,并返货None;
re.search匹配整个字符串,直到到⼀个匹配,如果整个字符串都没匹配到,则返回None。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论