【发布时间】:2014-04-03 10:25:01
【问题描述】:
我有两个字符串:
$relativeUrl = "/string1/(\d+)/string2/(\d+)/string3";
$currentUrl = "/string1/1234/string2/5678/string3";
我试图断言 $currentUrl 确实与包含两个数字 ((\d+)) 的正则表达式的 $relativeUrl 匹配。我想要的结果只是一个true 或false 值。
我尝试过使用preg_quote(),因为:
preg_quote() 接受 str 并在作为正则表达式语法一部分的每个字符前面放置一个反斜杠。 如果您有一个需要在某些文本中匹配的运行时字符串,并且该字符串可能包含特殊的正则表达式字符,这将非常有用。
但是,我必须 [pre|app] 附加分隔符,以免收到 Unknown modifier '\' 错误,即使这样,我也只能得到一个空数组。我不知道还有什么方法是最好的。
preg_match("^" . preg_quote($relativeUrl) . "^", $currentUrl, $matches);
var_dump($matches); // Gives array(0) { }
我这样做是否正确?我怎样才能达到我的要求?
【问题讨论】: