Sözdizimindeki en büyük değişiklik, sınırlayıcıların eklenmesidir .
ereg('^hello', $str);
preg_match('/^hello/', $str);
Sınırlayıcılar, alfasayısal olmayan, ters eğik çizgi veya boşluk karakteri olan hemen hemen her şey olabilir. En çok kullanılan genel olarak ~
, /
ve #
.
Eşleşen parantezleri de kullanabilirsiniz:
preg_match('[^hello]', $str);
preg_match('(^hello)', $str);
preg_match('{^hello}', $str);
// etc
Sınırlayıcınız normal ifadede bulunursa, bundan kaçmanız gerekir:
ereg('^/hello', $str);
preg_match('/^\/hello/', $str);
Bir dizgideki tüm sınırlayıcılardan ve ayrılmış karakterlerden preg_quote kullanarak kolayca kaçabilirsiniz :
$expr = preg_quote('/hello', '/');
preg_match('/^'.$expr.'/', $str);
Ayrıca, PCRE çeşitli şeyler için değiştiricileri destekler . En çok kullanılanlardan biri, eregi'yei
alternatif olan büyük / küçük harfe duyarlı olmayan değiştiricidir :
eregi('^hello', 'HELLO');
preg_match('/^hello/i', 'HELLO');
PHP'de PCRE sözdizimi için tam referansın yanı sıra ifadenin dönüştürülmesine yardımcı olmak için POSIX normal ifadesi ve PCRE arasındaki farkların bir listesini bulabilirsiniz .
Ancak, basit örneğinizde normal bir ifade kullanmazsınız:
stripos($str, 'hello world') === 0