正则表达式之re.match()
import re def main(): username = 'jerry_friend' m = re.match(r'\w{8,20}', username) print(m) print(m.span()) # span(),如果匹配值成功,则返回匹配成功的下标 print(m.group()) # group(), 匹配成功,返回匹配成功后的部分 if __name__ == '__main__': main() # <_sre.SRE_Match object; span=(0, 12), match='jerry_friend'> # (0, 12) # jerry_friend ---------------------
注意:re.match()函数只检测RE是不是在string的开始位置匹配,
也就是说match()只有在0位置匹配成功的话才有返回,
如果不是开始位置匹配成功的话,match()就返回none, 不能和span()、group()搭配使用,否则会报错。以下的写法是错误的。
正则表达式之re.search()
注意:search()会扫描整个string查找匹配;search()可以不从0位置开始匹配,这就是和match()的区别。以上的‘username = #jerry_friend’,如果选择使用search(),那么是不会返回None的。 import re def main(): username = '#jerry_friend' m = re.search(r'\w{8,20}', username) print(m) print(m.span()) print(m.group()) if __name__ == '__main__': main() #<_sre.SRE_Match object; span=(1, 13), match='jerry_friend'> #(1, 13) #jerry_friend ---------------------