Php 将一个字符串与包含正则表达式的另一个字符串进行匹配
我有两条线:Php 将一个字符串与包含正则表达式的另一个字符串进行匹配,php,regex,Php,Regex,我有两条线: $relativeUrl = "/string1/(\d+)/string2/(\d+)/string3"; $currentUrl = "/string1/1234/string2/5678/string3"; 我试图断言$currentUrl确实匹配$relativeUrl,其中包含两个数字的正则表达式((\d+))。我想要的结果只是一个true或false值 我尝试使用preg\u quote(),因为: preg_quote()接受str,并在正则表达式语法中的每个字符
$relativeUrl = "/string1/(\d+)/string2/(\d+)/string3";
$currentUrl = "/string1/1234/string2/5678/string3";
我试图断言$currentUrl
确实匹配$relativeUrl
,其中包含两个数字的正则表达式((\d+)
)。我想要的结果只是一个true
或false
值
我尝试使用preg\u quote()
,因为:
preg_quote()接受str,并在正则表达式语法中的每个字符前面加上反斜杠如果需要在某些文本中匹配运行时字符串,并且该字符串可能包含特殊的正则表达式字符,则此选项非常有用
但是,我必须[pre | ap]挂起分隔符,以便不接收未知修饰符'\'
错误,即使这样,我也只能得到一个空数组。我不知道还有什么办法是最好的
preg_match("^" . preg_quote($relativeUrl) . "^", $currentUrl, $matches);
var_dump($matches); // Gives array(0) { }
我这样做对吗?我如何才能达到我的要求?在没有
preg\u quote的情况下尝试此preg\u match
:
preg_match('#' . $relativeUrl . '#', $currentUrl, $matches);
你测试过这个吗?它不起作用。我仍然得到一个空数组。很好,谢谢。看起来我根本不需要preg\u quote()
。我会在7分钟内接受…:-)