如何在正则表达式中连接特殊字符


How to concatenate special characters in regex

我有下面的语句,它使用regex

preg_split('/DELIMITER '.$delimiter.'|DELIMITER ;/', $sqlString);$delimiter等于$$或//或其他双特殊字符,但当使用$$等字符时,必须使用转义。在我的情况下,我想使用$delimiter作为变量。

使用preg_quote()逃离它们:

preg_split('/DELIMITER '.preg_quote($delimiter, '/').'|DELIMITER ;/', $sqlString);

使用sprintf():的可读性稍高的版本

$pattern = sprintf('/DELIMITER %s|DELIMITER ;/', preg_quote($delimiter, '/'));
$result  = preg_split($pattern, $sqlString);