Ошибка php preg_split при переключении с split на preg_split

Я получаю это предупреждение от php после изменения от split до preg_split для совместимости php 5.3:

PHP Warning: preg_split(): Delimiter must not be alphanumeric or backslash 

PHP-код:

 $statements = preg_split("\\s*;\\s*", $content); 

Как я могу исправить регулярное выражение больше не использовать \

Благодаря!

Ошибка заключается в том, что для регулярного выражения требуется символ разделителя.

 $statements = preg_split("/\s*;\s*/", $content); 

Хотя вопрос был помечен как ответ через две минуты после запроса, я хотел бы добавить некоторую информацию для записей.

Подобно тому, как строки ограничены кавычками, регулярные выражения на многих языках, такие как Perl или JavaScript, ограничиваются косой чертой. Это приведет к следующим выражениям:

 /\s*;\s*/ 

Этот синтаксис также позволяет указать модификаторы:

 /\s*;\s*/Ui 

PHP-Perl-совместимые регулярные выражения (aka preg _… functions) наследуют это. Однако сам PHP не поддерживает этот синтаксис, поэтому кормление preg_split () с помощью /\s*;\s*/ приведет к возникновению ошибки синтаксического анализа. Вместо этого вы заключите его в кавычки, чтобы создать обычную строку.

Еще одна вещь, которую вы должны учитывать, – это то, что PHP позволяет изменять разделитель. Например, вы можете использовать это:

 @\s*;\s*@Ui 

Для чего это? Это упрощает использование косых черт внутри выражения, поскольку вам не нужно их избегать. Для сравнения:

 /^\/home\/.*$/i @^/home/.*$@i