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

如何通过正则反向搜索从链接提取wo_no前斜杠间的特定文本?

解决方案:提取URL中指定位置的文本

问题分析

你原正则代码失效的原因是.*属于贪婪匹配,会从字符串第一个/开始匹配,直到倒数第二个/结束,导致结果包含大量冗余内容,无法精准定位目标的GUID段。

方法一:修正正则表达式

方案1:非贪婪匹配

将贪婪匹配的.*替换为非贪婪的.*?,同时用$限定匹配字符串末尾的wo_no,避免误匹配:

import re
wo_no = "54789"
href = "https://huio.pavilion.co/3/072144b5-f1a0-4dd4-9bb6-d5b7f96b144d/54789"
guid_search = re.search(f"/(.*?)/{wo_no}$", href)
if guid_search:
    print(guid_search.group(1))  # 输出:072144b5-f1a0-4dd4-9bb6-d5b7f96b144d

方案2:精准匹配非斜杠字符(推荐)

用[^/]+匹配不含斜杠的字符,直接定位两个斜杠之间的目标段,效率更高:

import re
wo_no = "54789"
href = "https://huio.pavilion.co/3/072144b5-f1a0-4dd4-9bb6-d5b7f96b144d/54789"
guid_search = re.search(f"/([^/]+)/{wo_no}$", href)
if guid_search:
    print(guid_search.group(1))  # 输出:072144b5-f1a0-4dd4-9bb6-d5b7f96b144d

方法二:字符串分割法(无需正则)

如果URL结构固定(wo_no始终在最后一段),直接用split分割后取倒数第二段即可:

wo_no = "54789"
href = "https://huio.pavilion.co/3/072144b5-f1a0-4dd4-9bb6-d5b7f96b144d/54789"
segments = href.split("/")
if segments[-1] == wo_no:
    print(segments[-2])  # 输出:072144b5-f1a0-4dd4-9bb6-d5b7f96b144d

内容的提问来源于stack exchange,提问作者Ben David

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:33:24