2

我得到以下字符串:

last_name, first_name
bjorge, philip
kardashian, [kghim]
mer#$##Code:menu:51587daa7030e##$#cury some more
data #$##Code:menu:515r4387daa7dsf030e##$#, freddie

我试图用函数替换中间的代码:'codeParser' 正则表达式是:

$PC_File = preg_replace_callback("(?=\#\$\#\#).*?(?<=\#\#\$\#)", 'codeParser', $PC_File);

但收到此错误:

PHP Warning:  preg_replace_callback() : Unknown modifier '.'
4

1 回答 1

7

您需要将正则表达式包装在delimiters中。它现在正在考虑()成为分隔符,并且.作为修饰符(这当然是无效的)。

"/(?=#\\$##).*?(?<=##\\$#)/"

(我也很确定#不需要转义,除非您将它们用作分隔符)

编辑:您需要\\正确转义$双引号。

于 2013-04-01T15:54:01.050 回答