1

大家好,我在 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'}

我将如何根据正则表达式执行此操作,以便即使目录选项不存在也会进行替换?提前致谢!

4

1 回答 1

1

使其成为可选

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

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

在组之后添加?使其可选

于 2012-07-17T00:59:16.337 回答