语法上的最大变化是添加了定界符。
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语法的完整参考,以及差异列表。 POSIX正则表达式和PCRE之间以帮助转换表达式。
但是,在您的简单示例中,您将不使用正则表达式:
stripos($str, 'hello world') === 0