print("---------锚字符(边界字符)--------")
'''
^ 行首匹配,和在[]里的^不是一个意思
$ 行尾匹配
\A 匹配字符串的开始,和^的区别是:\A只匹配整个字符串的开头,即使在
re.M的模式下也不会匹配其他行的行首
\Z 匹配字符串结束,它和$的区别是:\Z只匹配整个字符串的开头,即使在
re.M的模式下也不会匹配其他行的行尾
\b 匹配一个单词的边界,也就是值单词和空格间的位置
\B 匹配非单词的边界
'''
#re.M多行匹配
print(re.findall("^tom","tom is a boy \ntom is a boy",re.M))#结果['tom', 'tom']
print(re.findall("\Atom","tom is a boy \ntom is a boy",re.M))#结果['tom']
print(re.search(r"er\b","never "))#匹配到
print(re.search(r"er\b"," nerve"))#没有
print(re.search(r"er\B","never "))#没有
print(re.search(r"er\B","nerve"))#匹配到