如何在Python中用Regex提取URL中的药品ID子串
解决方案:提取URL中的ID正则表达式
针对你给出的两个URL结构,这里提供两种实用的正则方案,直接获取目标ID:
方法1:捕获组(兼容性强,适配多数正则引擎)
正则表达式:
/drugs/2/drug-([^/]+)
- 逻辑说明:
/drugs/2/drug-精准匹配固定前缀,锁定ID的起始位置([^/]+)是捕获组,匹配所有非/的字符,刚好覆盖两种ID格式(带连字符和纯数字)- 使用时直接提取第一个捕获组的内容即可。
方法2:正向后顾断言(直接匹配目标内容,无需捕获组)
正则表达式:
(?<=/drugs/2/drug-)[^/]+
- 逻辑说明:
(?<=/drugs/2/drug-)是正向后顾断言,仅验证前缀存在但不将其纳入匹配结果[^/]+匹配到下一个/前的所有字符,直接得到你需要的ID
验证结果
- 对URL
/drugs/2/drug-19904-5106/magnesium-oxide-tablet/details,匹配结果为19904-5106 - 对URL
/drugs/2/drug-19906/magnesium-moxide-tablet/details,匹配结果为19906
内容的提问来源于stack exchange,提问作者Carlo Allocca
相关产品推荐
相关产品推荐

