如果模式是变量,则PHP preg_匹配

如果模式是变量,则PHP preg_匹配,php,preg-match,Php,Preg Match,如果模式是preg_match中的变量,那么使用分隔符是否正确 if (!preg_match("/{$_SERVER["SERVER_NAME"]}/",$variable)){ ....... } 正确的处理方法是使用确保正则表达式中具有特殊含义的字符正确转义: $pattern = '/' . preg_quote($_SERVER['SERVER_NAME'], '/') . '/'; if (!preg_match($pattern, $variable)) { } 当然,这本

如果模式是preg_match中的变量,那么使用分隔符是否正确

if (!preg_match("/{$_SERVER["SERVER_NAME"]}/",$variable)){
  .......
}

正确的处理方法是使用确保正则表达式中具有特殊含义的字符正确转义:

$pattern = '/' . preg_quote($_SERVER['SERVER_NAME'], '/') . '/';
if (!preg_match($pattern, $variable)) {
}
当然,这本身不是一个非常有用的表达式,因为您也可以这样写:

if (strpos($variable, $_SERVER['SERVER_NAME']) === false) {
}

请确保转义动态正则表达式。这实际上是您正在使用的正则表达式,还是一个简化的示例?您是想用
$variable
的内容替换确切的字符串
{$\u SERVER[“SERVER\u NAME”]}
,还是想替换用漩涡括号括起来的
$\u SERVER[“SERVER\u NAME”]
的值,值为
$variable
?@Waleed Khan实际上是use@DanielePalombetta那么为什么像
strstrstr
strpos
这样的东西根本不使用正则表达式呢?谢谢你的解释