Python正则匹配结果不符:分组非贪婪匹配为何少匹配字符?
python 正则匹配存在差异的原因
使用分组非贪婪匹配进行正则表达式的匹配时,发现匹配结果与预期不符,少了 7 个字符。通过仔细观察发现,问题出现在匹配模式中。
正则表达式中的 .(点)表示匹配任意单个字符。在这种情况下,作者希望匹配像 forum/w33d580/ 这样的路径部分。然而,代码中使用了 r'http://tiebapic.baidu.com/(.+?)sign=.+?/(.+?).(.+?)' 模式,这里 .+? 匹配到的是任意数量的任意字符,包括 t 字符。
因此,匹配结果中缺少了最后的 .jpg,因为它被 t 字符替换掉了。为了解决此问题,需要转义点,即使用 . 替换 .。
立即学习“Python免费学习笔记(深入)”;
修改后的正则表达式:
pattern = re.compile(r'http://tiebapic.baidu.com/(.+?)sign=.+?/(.+).(.+?)?tbpicau=', re.s)
现在,匹配结果将是预期的:
forum/w33D580/9728d9177f3e67097e8a81c87dc79f3df9dc55aa.jpg
文章推荐
-
Python中的map函数有什么用途?
在本文中,我们将学习Python中map函数的使用。什么是map()函数?Python的map()函数将一个函数应用于作...
Python
11秒前 0 -
企业招聘Python开发者的常见要求
企业招聘Python开发者的常见要求随着信息技术的快速发展,Python作为一种高级编程语言,正变得越来越受企业欢迎。作...
Python
42秒前 0 -
如何使用Python生成两个日期之间的k个随机日期?
生成随机数据在数据科学领域非常重要。从构建神经网络预测、股市数据等来看,通常都会将日期作为参数之一。我们可能需要在两个日...
Python
1分钟前 0 -
如何在Python中执行F检验
统计学家使用 f 检验来检查两个数据集是否具有相同的方差。 f 检验以罗纳德·费舍尔爵士的名字命名。为了使用 f 检验,...
Python
2分钟前 0 -
Python技术求职市场的现状分析与预测
Python技术求职市场的现状分析与预测随着信息技术的快速发展,Python编程语言在近年来在技术求职市场上取得了飞速发...
Python
3分钟前 0
最新文章
- Python中的map函数有什么用途? 11秒前
- 企业招聘Python开发者的常见要求 42秒前
- 如何使用Python生成两个日期之间的k个随机日期? 1分钟前
- 如何在Python中执行F检验 2分钟前
- Python技术求职市场的现状分析与预测 3分钟前
- Python程序将字符串列表转换为逗号分隔的字符串 3分钟前
- Python程序提取网格匹配字符串 5分钟前
- 学Python能否确保你在IT行业内立足? 6分钟前
- Python中llist模块的dllist类 7分钟前
- 在现代工作环境中,Python编程对职业发展的重要性 8分钟前