正则表达式用的最多的两个函数是re.match()
和re.search()
使用re.match()
match()
视图从字符串的起始位置对模式进行匹配.
如果匹配成功, 就返回一个匹配对象, 如果匹配失败, 就返回 None.
匹配对象的group()
方法能够显示那个成功的匹配.
使用语法:
re.match(pattern, string[, flags=0])
参数说明:
匹配的正则表达式. 直接传入一个字符串, python 会把这个字符串作为正则表达式来对待
要匹配的字符串.
标志位:用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
import re
m = re.match("foo", "foo_my")
print(m.group())
注意:
match()
匹配是从字符串的开始位置匹配, 如果开始不匹配则不会匹配成功, 返回一个 None
import re
m = re.match("foo", "afoo_my")
print(m) # 匹配不成功, 返回 None.
使用re.search()
re.match()
总是从字符串的开始位置开始匹配, 所以很多情况下能够匹配的概率不大.
re.search()
是在字符串中搜索正则表达式模式, 任何位置都可以. 返回的是第一次出现的匹配情况(因为正则字符串中可能会多处匹配)
他的参数和re.match()
是一样的, 返回值也是一个匹配对象.
import re
m = re.search("foo", "afoo_my") # 搜索成功
print(m.group()) # foo
re.match()和re.search()的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。