PHP preg_用多个正则表达式替换_回调
大家好,我有下面关于php的代码PHP preg_用多个正则表达式替换_回调,php,regex,preg-replace-callback,Php,Regex,Preg Replace Callback,大家好,我有下面关于php的代码 return preg_replace_callback("#\{gallery: '(.+?)'\}#i", function($i) { $oGallery = new Gallery( $i[1] ); $oGallery->PublicSide(); }, $string); 现在我想添加以下内容: 假设我希望允许用户选择是否要将目录添加到库中,那么我会: "#\{gallery: '(
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'}
我将如何使用正则表达式来实现这一点,这样即使目录选项不存在,也会进行替换?提前谢谢 让它成为可选的
"#\{gallery: '(.+?)'(?: dir: '(.+?)')?\}#i"
(?:text)
创建非捕获组
在组后添加?
使其成为可选的使其成为可选的
"#\{gallery: '(.+?)'(?: dir: '(.+?)')?\}#i"
(?:text)
创建非捕获组
添加
?
在小组将其设置为可选后再问一个问题,这在我的PHP 5.3 localhost上有效,但在我的5.2.17服务器上似乎不起作用,似乎是单引号的问题,知道发生了什么吗?再问一个问题,这在我的PHP 5.3 localhost上有效,但在我的5.2.17服务器上似乎不起作用,好像是单引号,知道怎么回事吗?
"#\{gallery: '(.+?)'(?: dir: '(.+?)')?\}#i"