php preg_split 表达式引发警告

php preg_split expression raises warning

我的一个正则表达式发出了警告,我只是想不通为什么或如何更改表达式以使其正常工作。 我必须逃避什么吗?如果是,为什么以及如何?我想更好地理解...

$output = preg_split("/($beginDelimiter|$endDelimiter)/", $text);

PHP Warning: preg_split(): Compilation failed: missing ) at offset 15 in /home/tim/importer.php on line 539

感谢您的帮助!

编辑: $beginDelimiter 包含 SRF53 $endDelimiter 包含 (

肯定是第二个问题,明白了。。。需要转义。

使用 preg_quote,因为您的变量包含需要在 regex.

中转义的特殊字符

preg_quote() takes string and puts a backslash in front of every character that is part of the regular expression syntax. This is useful if you have a run-time string that you need to match in some text and the string may contain special regex characters.

$output = preg_split("/(".preg_quote($beginDelimiter)."|".preg_quote($endDelimiter)."/", $text);