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