正则表达式PHP - >双重结果

时间:2014-01-26 06:25:36

标签: php regex

需要获取并检查字符串/ get /或/ post / only。

以下正则表达式产生了两个结果,但我实际上只需要第一个结果,如何在正则表达式查询下进行更正。

regex:  \/(post|get)\/

eg: http://www.google.com/get/

result:

Array
(
    [0] => /get/
    [1] => get
)

如何检查字符串/abcdef=/ - >正则表达式使用\/*=\/,但它没有给出任何结果..

2 个答案:

答案 0 :(得分:0)

你得到两个结果,因为你使用括号(get | post) 如果RegExp中没有括号,则结果将仅包含匹配本身。 如果有括号,那么第一个结果将包含全局匹配,并且每个结果将包含括号内容,在您的情况下它是“get”。

你只是不注意$ matches [1]并使用$ matches [0],请考虑以下事项:

$url = "domain.com/get/";
preg_match("/\/(post|get)\//", $url, $match);
$path = $match[0];

答案 1 :(得分:0)

如果您只想http://www.google.com/get/,则来自get

您可以使用positive look ahead

(?<=\/)(post|get)(?=\/)

<强> Demo and Explanation

如果您想查看/abcdef=/,可以使用:(\/.*=\/)

<强> Check Demo