带有多个正则表达式的PHP preg_replace_callback

时间:2012-07-17 00:41:54

标签: php regex preg-replace-callback

大家好,我在php上有以下代码

return preg_replace_callback("#\{gallery: '(.+?)'\}#i", 
    function($i)
    { 
        $oGallery = new Gallery( $i[1] );
        $oGallery->PublicSide();
    }, $string);

现在我要添加以下内容:

假设我想允许用户选择是否要将目录添加到库中,以便我这样做:

"#\{gallery: '(.+?)' dir: '(.+?)')\}#i"

所以用户可以使用药水:{gallery: 'folder'}{gallery: 'folder' dir: '1'}

我将如何在正则表达式方面这样做,所以即使目录选项不存在,也会进行替换?提前谢谢!

1 个答案:

答案 0 :(得分:1)

将其设为可选

"#\{gallery: '(.+?)'(?: dir: '(.+?)')?\}#i"

(?:text)创建一个非捕获组

在群组成为可选项后添加?

相关问题