正则表达式检查URL是否有尾部斜杠和参数。

3
我需要对正则表达式进行检查,尤其是以下内容:
/it/categoria/diritti-e-ugualianza
/it/categoria/diritti-e-ugualianza/
/it/categoria/diritti-e-ugualianza?i=1
/it/categoria/diritti-e-ugualianza/?i=1

必须按独特的规则进行检查

我尝试使用以下方法

/it/categoria/diritti-e-ugualianza(?:/(.*))?$

但它只适用于 /it/categoria/diritti-e-ugualianza /it/categoria/diritti-e-ugualianza/

是否存在忽略参数的方法? 谢谢


1
尝试使用/it/categoria/diritti-e-ugualianza(?:[?/](.*))?$进行匹配,将/替换为[/?] - Wiktor Stribiżew
你的上下文是什么?通常有一个内置函数可以获取该信息。 - wp78de
我使用一个名为Redirections的WordPress插件,它可以管理301重定向。当一个URL被调用时,该插件会与所有规则进行匹配,如果有正确的规则,则会将其重定向到另一个页面(是另一个参数)。因此,我需要一个匹配的正则表达式。 - Andrea G. Pigliafreddo
@AndreaG.Pigliafreddo 请为问题添加相关标签以获得相关帮助。 - Wiktor Stribiżew
1
@WiktorStribiżew,你的解决方案可行,非常感谢! - Andrea G. Pigliafreddo
1个回答

3
您可以将/替换为字符类[/?],该字符类可以匹配?/
/it/categoria/diritti-e-ugualianza(?:[?/](.*))?$
                                     ^^^^

请查看正则表达式示例

详细信息

  • /it/categoria/diritti-e-ugualianza - 一个完整的子字符串
  • (?:[?/](.*))? - 可选组匹配0或1个出现次数:
    • [?/] - 一个?或者/
    • (.*) - 第一捕获组:任意0+个字符直到行末
  • $ - 字符串结尾。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接