Python正则表达式找不到但匹配却没有

 1輩孓莣8鋽 发布于 2022-12-09 08:36

我在IPython中测试它.该变量t是从字典中的文本设置并返回:

u'http://www.amazon.com/dp/B003T0G9GM/ref=wl_it_dp_v_nS_ttl/177-5611794-0982247?_encoding=UTF8&colid=SBGZJRGMR8TA&coliid=I205LCXDIRSLL3'

使用此代码:

r = r'amazon\.com/dp/(\w{10})' 
m = re.findall(r,t)

匹配正确并m返回[u'B003T0G9GM']

使用此代码,

p = re.compile(r)
m = p.match(t)

m 回报 None

阅读本文档后,这对我来说是正确的. https://docs.python.org/2/howto/regex.html#grouping

在IPython中试用之前我也在这里测试了验证正则表达式 http://regex101.com/r/gG8eQ2/1

我错过了什么?

1 个回答
  • 应该使用搜索,而不是匹配.这是你应该拥有的:

    p = re.compile(r)
    m = p.search(t)
    if m: print(m.group(1)) # gives: B003T0G9GM
    

    匹配只检查字符串的开头.搜索遍及整个字符串.

    2022-12-11 02:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有