【问题标题】:PHP preg_replace_callback with more than one regular expression具有多个正则表达式的 PHP preg_replace_callback
【发布时间】:2012-07-15 21:47:17
【问题描述】:

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

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

【问题讨论】:

    标签: php regex preg-replace-callback


    【解决方案1】:

    让它成为可选的

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

    (?:text) 创建非捕获组

    在组后添加? 使其成为可选

    【讨论】:

    • 还有一个问题,这适用于我的 PHP 5.3 localhost 但它似乎不适用于我的 5.2.17 服务器,似乎是单引号,知道发生了什么吗?
    猜你喜欢
    • 2011-01-26
    • 2010-12-26
    • 2013-12-09
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    相关资源
    最近更新 更多