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

Python环境下如何编写匹配带参数URL的正则表达式?

匹配规则说明

针对你给出的index12.php?cart123=123sadasd这类全字母数字带参数URL的匹配需求,可直接使用下方正则实现:

正则表达式

单参数场景(仅匹配只有一组键值对的URL)

^[a-zA-Z0-9]+\.[a-zA-Z0-9]+\?[a-zA-Z0-9]+=[a-zA-Z0-9]+$

多参数场景(适配多组&连接的键值对)

^[a-zA-Z0-9]+\.[a-zA-Z0-9]+\?[a-zA-Z0-9]+=[a-zA-Z0-9]+(?:&[a-zA-Z0-9]+=[a-zA-Z0-9]+)*$

带多级路径场景(如果需要匹配api/v1/index.php?id=123这类带路径的URL)

^(?:[a-zA-Z0-9]+/)*[a-zA-Z0-9]+\.[a-zA-Z0-9]+\?[a-zA-Z0-9]+=[a-zA-Z0-9]+(?:&[a-zA-Z0-9]+=[a-zA-Z0-9]+)*$

Python 实现示例

import re

# 按需选择对应正则,这里以多参数版本为例
url_pattern = re.compile(r'^[a-zA-Z0-9]+\.[a-zA-Z0-9]+\?[a-zA-Z0-9]+=[a-zA-Z0-9]+(?:&[a-zA-Z0-9]+=[a-zA-Z0-9]+)*$')

# 测试你的示例URL
test_target = "index12.php?cart123=123sadasd"
if url_pattern.match(test_target):
    print("匹配成功")
else:
    print("匹配失败")

# 忽略大小写的简化写法
# url_pattern = re.compile(r'^[a-z0-9]+\.[a-z0-9]+\?[a-z0-9]+=[a-z0-9]+(?:&[a-z0-9]+=[a-z0-9]+)*$', flags=re.IGNORECASE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:27:04