需要获取并检查字符串/ get /或/ post / only。
以下正则表达式产生了两个结果,但我实际上只需要第一个结果,如何在正则表达式查询下进行更正。
regex: \/(post|get)\/
eg: http://www.google.com/get/
result:
Array
(
[0] => /get/
[1] => get
)
如何检查字符串/abcdef=/
- >正则表达式使用\/*=\/
,但它没有给出任何结果..
答案 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 强>