匹配文件路径字符串中指定目录名称后的 3 个子目录名称

发布于 2024-10-16 06:48:37 字数 218 浏览 7 评论 0原文

/any_string/any_string/any_number

带有此正则表达式:

/(\w+).(\w+).(\d+)/

它有效,但我需要这个网址:

/specific_string/any_string/any_string/any_number

而且我不知道如何获取它。

/any_string/any_string/any_number

with this regular expression:

/(\w+).(\w+).(\d+)/

It works, but I need this url:

/specific_string/any_string/any_string/any_number

And I don't know how to get it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

星星的轨迹 2024-10-23 06:48:37

/(specific_string).(\w+).(\w+).(\d+)/

但请注意,正则表达式中的 . 在技术上与 any 匹配 性格和
不仅仅是 /

/(specific_string)\/(\w+)\/(\w+)\/(\d+)/

这将使其仅匹配斜杠。

/(specific_string).(\w+).(\w+).(\d+)/

Though note that the .s in your regular expression technically match any character and
not just the /

/(specific_string)\/(\w+)\/(\w+)\/(\d+)/

This will have it match only slashes.

〗斷ホ乔殘χμё〖 2024-10-23 06:48:37

这将匹配第二个 url:

"/(\w+)\/(\w+)\/(\w+)\/(\d+)/"

This one will match the second url:

"/(\w+)\/(\w+)\/(\w+)\/(\d+)/"
南七夏 2024-10-23 06:48:37
/\/specific_string\/(\w+).(\w+).(\d+)/
/\/specific_string\/(\w+).(\w+).(\d+)/
生生漫 2024-10-23 06:48:37

只需在正则表达式中插入特定字符串:

/specific_string\/(\w+)/(\w+)/\d+)/

Just insert the specific_string in the regexp:

/specific_string\/(\w+)/(\w+)/\d+)/
吾性傲以野 2024-10-23 06:48:37

更改外部分隔符的另一个变体以避免无关的转义:

preg_match("#/FIXED_STRING/(\w+)/(\w+)/(\d+)#", $_SERVER["REQUEST_URI"],

Another variant with the outer delimiters changed to avoid extraneous escaping:

preg_match("#/FIXED_STRING/(\w+)/(\w+)/(\d+)#", $_SERVER["REQUEST_URI"],
橙幽之幻 2024-10-23 06:48:37

我会使用这样的东西:

"/\/specific_string\/([^\/]+)\/([^\/]+)\/(\d+)/"

我使用 [^\/]+ 因为它将匹配除斜杠之外的任何内容。 \w+ 几乎在任何时候都有效,但如果路径中某处存在意外字符,这也将有效。另请注意,我的正则表达式需要前导斜杠。

如果您想变得更复杂一点,以下正则表达式将匹配您提供的两者模式:

"/^(?:\/specific_string)*\/([^\/]+)\/([^\/]+)\/(\d+)$/"

这将匹配:

"/any_string/any_string/any_number"
"/specific_string/any_string/any_string/any_number"

但它将匹配

"/some_other_string/any_string/any_string/any_number"

I would use something like this:

"/\/specific_string\/([^\/]+)\/([^\/]+)\/(\d+)/"

I use [^\/]+ because that will match anything that is not a slash. \w+ will work almost all the time, but this will also work if there is an unexpected character in the path somewhere. Also note that my regex requires the leading slash.

If you want to get a little more complicated, the following regex will match both of the patterns you provided:

"/^(?:\/specific_string)*\/([^\/]+)\/([^\/]+)\/(\d+)$/"

This will match:

"/any_string/any_string/any_number"
"/specific_string/any_string/any_string/any_number"

but it will not match

"/some_other_string/any_string/any_string/any_number"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文