我有以下声明,它使用了正则表达式
preg_split('/DELIMITER '.$delimiter.'|DELIMITER ;/', $sqlString);
并且$delimiter
等于$$或//或其他双重特殊字符,但是当使用像$$这样的字符时,我们必须使用转义。在我的情况下,我想使用$delimiter
作为变量。
答案 0 :(得分:2)
使用preg_quote()
来逃避它们:
preg_split('/DELIMITER '.preg_quote($delimiter, '/').'|DELIMITER ;/', $sqlString);
使用sprintf()
的更易读的版本:
$pattern = sprintf('/DELIMITER %s|DELIMITER ;/', preg_quote($delimiter, '/'));
$result = preg_split($pattern, $sqlString);