我正在尝试将以下ereg()
来电转换为使用preg_match()
代替:
if (ereg('(.*/)(.*)$',$fileref,$reg) ) {
这是preg_match()
调用我试图将其替换为:
if (preg_match('(.*/)(.*)$',$fileref,$reg) ) {
当我运行此代码时,出现以下错误:
preg_match(): Unknown modifier '('
造成此错误的ereg()
和preg_match()
之间的语法有何不同?
答案 0 :(得分:3)
preg_match('~(.*/)(.*)$~',$fileref,$reg)
您必须定义分隔符。我使用~
,但你可以使用你喜欢的任何分隔符(它总是第一个字符)。模式本身必须以分隔符结束(但修饰符可以跟随),并且在模式中使用时必须对分隔符进行转义。
但值得一提的是:该模式只寻找/
,因此正则表达式只是超大。
if (strpos($fileref, '/') !== false) { /* do something */ }