Match与Search区别
Match与Search都是进行匹配。但Match是从string的0位置开始匹配,若初始位置匹配不成功,则报错。而Search是扫描整个string然后查找匹配。具体参考下图。
匹配字符串中是否有连续8-20位的字母或数字或下划线。
- 当String初始位置匹配成功:
import re
def main():
username = 'jerry_friend_friend_friend' n = re.search(r'\w{8,20}', username)
print("If search......")
print("n:", n)
print("The subscript of n:", n.span())
print("Matched words in n:", n.group()) # group(),匹配成功,返回匹配成功的句子
m = re.match(r'\w{8,20}', username)
print("If match.......")
print("m:", m)
print("The subscript of m:", m.span()) # span(),如果匹配值成功,则返回匹配成功的下标
print("Matched words in m:", m.group()) # group(), 匹配成功,返回匹配成功后的部分
if __name__ == '__main__':
main()
结果:
- 当String初始位置匹配不成功:
import re
def main():
username = '#jerry_friend_friend_friend'
......
结果: