Найбільша зміна синтаксису - додавання роздільників .
ereg('^hello', $str);
preg_match('/^hello/', $str);
Розмежувачами може бути майже все, що не є буквено-цифровим, зворотним нахилом або символом пробілу. Найбільш використовувані, як правило ~, /та #.
Ви також можете використовувати відповідні дужки:
preg_match('[^hello]', $str);
preg_match('(^hello)', $str);
preg_match('{^hello}', $str);
// etc
Якщо ваш роздільник є в регулярному виразі, вам слід уникнути цього:
ereg('^/hello', $str);
preg_match('/^\/hello/', $str);
Ви можете легко уникнути всіх роздільників та зарезервованих символів у рядку, використовуючи preg_quote :
$expr = preg_quote('/hello', '/');
preg_match('/^'.$expr.'/', $str);
Також PCRE підтримує модифікатори для різних речей. Одним з найбільш використовуваних є нечутливий до регістру модифікатор i, альтернатива eregi :
eregi('^hello', 'HELLO');
preg_match('/^hello/i', 'HELLO');
Ви можете знайти повне посилання на синтаксис PCRE в PHP в посібнику , а також список відмінностей між POSIX regex і PCRE, щоб допомогти перетворити вираз.
Однак у вашому простому прикладі ви б не використовували регулярний вираз:
stripos($str, 'hello world') === 0