您的位置 首页 知识分享

Python正则匹配结果不符:分组非贪婪匹配为何少匹配字符?

正则匹配存在差异的原因 使用分组非贪婪匹配进行正则表达式的匹配时,发现匹配结果与预期不符,少了 7 个字符。通…

Python正则匹配结果不符:分组非贪婪匹配为何少匹配字符?

正则匹配存在差异的原因

使用分组非贪婪匹配进行正则表达式的匹配时,发现匹配结果与预期不符,少了 7 个字符。通过仔细观察发现,问题出现在匹配模式中。

正则表达式中的 .(点)表示匹配任意单个字符。在这种情况下,作者希望匹配像 forum/w33d580/ 这样的路径部分。然而,代码中使用了 r’http://tiebapic.bdu.com/(.+?)sign=.+?/(.+?).(.+?)’ 模式,这里 .+? 匹配到的是任意数量的任意字符,包括 t 字符。

因此,匹配结果中缺少了最后的 .jpg,因为它被 t 字符替换掉了。为了解决此问题,需要转义点,即使用 . 替换 .。

立即学习“”;

修改后的正则表达式:

pattern = re.compile(r'http://tiebapic.baidu.com/(.+?)sign=.+?/(.+).(.+?)?tbpicau=', re.s)
登录后复制

现在,匹配结果将是预期的:

forum/w33D580/9728d9177f3e67097e8a81c87dc79f3df9dc55aa.jpg
登录后复制

以上就是Python正则匹配结果不符:分组非贪婪匹配为何少匹配字符?的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/5281.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部