gpt4 book ai didi

php - 用于匹配 URI 的可选段的正则表达式?

转载 作者:搜寻专家 更新时间:2023-10-31 20:51:48 24 4
gpt4 key购买 nike

目前,我有一个简单的路由器类,它接受 URI 并尝试将它们与传入的请求 URI 匹配。它可能尝试匹配请求 URI 的路由的一个简单示例是:

/user/([0-9]+)

因此,这将匹配“user/1”的请求 URI。

现在我正在尝试匹配可选参数。这有效:

/user([/0-9]?)

但是,这似乎允许在段中使用任意数量的斜线。如何强制可选段前面有一个斜杠,然后是数字?

最佳答案

试试下面的正则表达式:

/user(/[0-9]+)?

它将匹配“/user”后跟“/”加上一位或多位数字或单独的“/user”。如果你只想对数字进行分组,你可以将它包含在一个非捕获组中:

/user(?:/([0-9]+))?

您可以在 preg_match 的调用中将其包含在 ^$ 中:

preg_match( "/^\/user(?:\/([0-9]+))?$/", "/user/1234", $m);
print_r($m);

关于php - 用于匹配 URI 的可选段的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6684445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com