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

正则表达式匹配符合指定参数规则的URL编写求助

正则调整方案

首先修复原有正则的两个核心问题:

  • 未对URL中的特殊字符?、.做转义,正则中这两个字符属于特殊功能字符,直接书写会导致匹配逻辑不符合预期
  • 缺少对可选后续参数的匹配规则

调整后正则

仅校验路径前缀场景(兼容原有写法)

^.*/truma\.aspx\?lang=en(&project=(31|32|33))?(&.*)?$

严格校验完整域名场景

^https://www\.example\.com/truma\.aspx\?lang=en(&project=(31|32|33))?(&.*)?$

规则说明

  • \.、\?:对URL中的特殊字符做转义,保证完全匹配对应字符
  • (&project=(31|32|33))?:可选的project参数分组,仅允许取值31/32/33,末尾?标识整个参数可选
  • (&.*)?:可选的后续参数分组,强制要求以&开头,后面可跟任意参数内容,末尾?标识整个部分可选
  • $:匹配字符串结尾,避免URL末尾出现多余非法内容

匹配效果示例

合法匹配场景:

  • https://www.example.com/truma.aspx?lang=en
  • https://www.example.com/truma.aspx?lang=en&project=31
  • https://www.example.com/truma.aspx?lang=en&project=32&utm_source=google&utm_medium=cpc
  • https://www.example.com/truma.aspx?lang=en&utm_campaign=test&other_param=123

非法不匹配场景:

  • https://www.example.com/truma.aspx?lang=en&project=34:project参数取值非法
  • https://www.example.com/truma.aspx?lang=cn:必填前缀的lang参数错误
  • https://www.example.com/truma.aspx?lang=enproject=31:缺少参数分隔符&

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:45:08