符号“$”表示匹配字符串的结尾,即字符串的结尾满足匹配模式的要求。
在 MULTILINE 模式(搜索标记中包含re.MULTILINE,关于搜索标记的含义请见《第11.2节 Python re模块函数概览》)下,本匹配模式是按行來搜索的,即只要多行文本中存在有搜索模式指定的字符串结尾的行,也被认为是搜索到了指定串。
注意:
1、’$’在匹配模式中必须为最后一个字符,不在最后一个字符位置则无效;
2、’$’在字符集中仅匹配自身;
3、匹配字符串结尾时是不含换行符的,即换行符在匹配结尾的字符时不含在内。
举例:
在 ‘foo1\nfoo2\n’ 搜索 foo.$ ,通常匹配 ‘foo2’ ,但在 MULTILINE 模式 ,可以匹配到 ‘foo1’ ;在 ‘foo\n’ 搜索 $ 会找到两个空串:一个在换行前,一个在字符串最后。对应代码如下:
>>> for m in re.finditer('foo.$','foo1\nfoo2\n'):print(m)
<re.Match object; span=(5, 9), match='foo2'>
>>> for m in re.finditer('foo.$','foo1\nfoo2\n',re.MULTILINE):print(m)
<re.Match object; span=(0, 4), match='foo1'>
<re.Match object; span=(5, 9), match='foo2'>
>>> for m in re.finditer('$','foo\n'):print(m)
<re.Match object; span=(3, 3), match=''>
<re.Match object; span=(4, 4), match=''>
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!*