我需要帮助在搜索URL路径的模式中转义斜杠。我试图检查路径是否包含在/orders/
后面的任何数字,就像这样:
$str = '/admin/store/orders/20284?width...';
if ( preg_match ( '/orders/([0-9]+)/', $str, $matches ) )
{
print_r($matches);
}
然而,我无法正确地转义斜杠。有人能帮忙吗?谢谢。
转义可以使用反斜杠 (\/
)。但用于分隔正则表达式的斜杠字符可以是任何字符:
if ( preg_match ( '~orders/([0-9]+)~', $str, $matches ) )
不需要转义即可工作。
#
和 |
之间反复切换,因为我发现后者更易于阅读,但如果您的模式中有备选搜索 |
,它就无法正常工作。 - miken32|
作为分隔符不是一个好选择的原因。请注意,如果您使用x修饰符或序列(?#comment)
,#
也具有特殊含义。大多数情况下,我使用~
(比/
更好的选择)。 - Casimir et Hippolyte
'\/orders\/([0-9]+)\/'
。 - Jorge Campos