符号“^”为插入符,也称为脱字符,在Python中脱字符表示匹配字符串的开头,即字符串的开头满足匹配模式的要求。这个功能有点类似搜索函数match,只是这是通过搜索模式来指定,而match是通过函数来指定。
在 MULTILINE 模式(搜索标记中包含re.MULTILINE,关于搜索标记的含义请见《第11.2节 Python re模块函数概览》)下,本匹配模式是按行來搜索的,即只要多行文本中存在有搜索模式指定的字符串开头的行,也被认为是搜索到了指定串。而match不具备此功能。
举例:
>>> print("发现匹配串")if re.search("^第[一-十][章回]",'西游记第一回 悟彻菩提真妙理 断魔归本合元神 \n第二回 悟彻菩提真妙理 断魔归本合元神') else print("未发现匹配串") #没有使用re.MULTILINE
未发现匹配串
>>> print("发现匹配串")if re.search("^第[一-十][章回]",'西游记第一回 悟彻菩提真妙理 断魔归本合元神 \n第二回 悟彻菩提真妙理 断魔归本合元神',re.MULTILINE) else print("未发现匹配串") #使用re.MULTILINE
发现了匹配串
>>> print("发现匹配串")if re.match("^第[一-十][章回]",'西游记第一回 悟彻菩提真妙理 断魔归本合元神 \n第二回 悟彻菩提真妙理 断魔归本合元神',re.MULTILINE) else print("未发现匹配串") #使用match,并带re.MULTILINE
未发现匹配串
>>> print("发现匹配串")if re.search("[^]第[一-十][章回]",'西游记第一回 悟彻菩提真妙理 断魔归本合元神 \n第二回 悟彻菩提真妙理 断魔归本合元神',re.MULTILINE) else print("未发现匹配串") #脱字符在字符集中只匹配自身
未发现匹配串
注意:
1、 ’^’在匹配模式中必须为第一个字符,不在第一个字符位置则无效;
2、 ’^’在字符集中仅匹配自身,但如果放在字符集的开始则表示匹配模式为排除字符集内字符的任意其他字符匹配。
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!*