/any_string/any_string/any_number
使用这个正则表达式:
/(\w+).(\w+).(\d+)/
它有效,但我需要这个网址:
/specific_string/any_string/any_string/any_number
而且我不知道如何得到它。感谢。
答案 0 :(得分:1)
/(specific_string).(\w+).(\w+).(\d+)/
虽然请注意,正则表达式中的.
技术上与任何字符匹配,
不只是/
/(specific_string)\/(\w+)\/(\w+)\/(\d+)/
这将只匹配斜杠。
答案 1 :(得分:0)
这个匹配第二个网址:
"/(\w+)\/(\w+)\/(\w+)\/(\d+)/"
答案 2 :(得分:0)
/\/specific_string\/(\w+).(\w+).(\d+)/
答案 3 :(得分:0)
只需在regexp中插入specific_string:
/specific_string\/(\w+)/(\w+)/\d+)/
答案 4 :(得分:0)
另一个更改外部分隔符的变体是为了避免无关的转义:
preg_match("#/FIXED_STRING/(\w+)/(\w+)/(\d+)#", $_SERVER["REQUEST_URI"],
答案 5 :(得分:0)
我会用这样的东西:
"/\/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"