第11.7节 Python正则表达式的字符串结尾匹配模式及元字符“$”功能介绍

时间:2023-12-21 22:27:14

符号“$”表示匹配字符串的结尾,即字符串的结尾满足匹配模式的要求。

在 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


请大家多多支持,点赞、评论和加关注!谢谢!
*