You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python正则表达式匹配URL中指定单词后跟随的数字

问题原因分析

  • 你当前使用的\word1(.*)[0-9]\/正则存在三处明显错误:
    1. 开头\word1写法错误:\w是正则元字符,代表字母、数字、下划线,你要匹配字面量字符串word1不需要加前置反斜杠,直接写word1即可
    2. 中间的.*属于贪婪匹配规则,会尽可能多的向后匹配字符,直接吞掉中间的数字段,无法完成精准捕获
    3. 末尾的[0-9]\/仅匹配单个数字加斜杠的组合,不能捕获完整的长数字串

正确正则方案

使用带捕获组的正则即可完成需求,完整正则为:
word1\/(\d+)\/word2\/(\d+)\/
其中:

  • \/匹配路径分隔符斜杠
  • \d+匹配1个及以上的数字串
  • 两个括号()为捕获组,第一个捕获组对应word1后的数字,第二个捕获组对应word2后的数字

代码示例(Python)

import re
target_url = "https://www.pizza.com/word1/685185197419/word2/980054970331342/"
result = re.search(r"word1/(\d+)/word2/(\d+)/", target_url)
if result:
    w1 = result.group(1)
    w2 = result.group(2)
    print(f"w1 = {w1}")
    print(f"w2 = {w2}")

运行后输出完全符合预期:

w1 = 685185197419
w2 = 980054970331342

如果只需要单独匹配其中某一个数字,可分别使用对应正则:

  • 匹配word1后的数字:word1\/(\d+)\/,取第1个捕获组内容即可
  • 匹配word2后的数字:word2\/(\d+)\/,取第1个捕获组内容即可

内容的提问来源于stack exchange,提问作者The Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 13:57:04