更新ereg调用时出错以改为使用preg_match

时间:2011-08-22 21:37:34

标签: php preg-match ereg

我正在尝试将以下ereg()来电转换为使用preg_match()代替:

if (ereg('(.*/)(.*)$',$fileref,$reg)    )   {

这是preg_match()调用我试图将其替换为:

if (preg_match('(.*/)(.*)$',$fileref,$reg)  )   {

当我运行此代码时,出现以下错误:

preg_match(): Unknown modifier '('

造成此错误的ereg()preg_match()之间的语法有何不同?

1 个答案:

答案 0 :(得分:3)

preg_match('~(.*/)(.*)$~',$fileref,$reg)

您必须定义分隔符。我使用~,但你可以使用你喜欢的任何分隔符(它总是第一个字符)。模式本身必须以分隔符结束(但修饰符可以跟随),并且在模式中使用时必须对分隔符进行转义。

但值得一提的是:该模式只寻找/,因此正则表达式只是超大。

if (strpos($fileref, '/') !== false) { /* do something */ }