【发布时间】:2013-03-22 17:18:36
【问题描述】:
我得到以下字符串:
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 '.'
【问题讨论】:
-
@Ashish 我很高兴这只是评论而不是答案:P
-
现在分隔符问题已经解决了,让我们来谈谈那些lookarounds。
'/#\$##(.*?)##\$#/'与您的正则表达式匹配的内容相同,但效率更高。捕获组允许您直接访问Code值(通过$matches[1]),因此您不必在单独的步骤中剥离周围的东西。
标签: php regex preg-replace preg-match preg-replace-callback