/any_string/any_string/any_number
与此正则表达式:问题用正则表达式PHP的
/(\w+).(\w+).(\d+)/
它的工作原理,但我需要这个网址:
/specific_string/any_string/any_string/any_number
而且我不知道如何得到它。谢谢。
/any_string/any_string/any_number
与此正则表达式:问题用正则表达式PHP的
/(\w+).(\w+).(\d+)/
它的工作原理,但我需要这个网址:
/specific_string/any_string/any_string/any_number
而且我不知道如何得到它。谢谢。
/(specific_string).(\w+).(\w+).(\d+)/
但要注意的是,.
在你的正则表达式技术上匹配任何性格和 不仅仅是/
/(specific_string)\/(\w+)\/(\w+)\/(\d+)/
这将只匹配斜杠。
这一个将匹配第二网址:
"/(\w+)\/(\w+)\/(\w+)\/(\d+)/"
/\/specific_string\/(\w+).(\w+).(\d+)/
只需插入specific_string在正规表达式:
/specific_string\/(\w+)/(\w+)/\d+)/
与改变,以避免外来逃逸外分隔符的另一个变种:
preg_match("#/FIXED_STRING/(\w+)/(\w+)/(\d+)#", $_SERVER["REQUEST_URI"],
我会用这样的:
"/\/specific_string\/([^\/]+)\/([^\/]+)\/(\d+)/"
我使用[^\/]+
,因为它会匹配任何不是sl的东西灰。 \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"
你是什么意思*我需要这个网址*?您的表情与第二个网址不符?顺便说一句。你的表达应该包括`/`而不是*任何字符。通过改变分隔符:`〜(\ w +)/(\ w +)/(\ d +)〜`。还要注意`\ w +`不匹配*任何字符串*,而是*任何单词字符串*。 – 2011-02-03 17:54:02