我有这个正则表达式,它可以提取任何子字符串,如{{string}}
我的正则表达式:'/{{+(.*?)}}/'
我需要修改它可以提取字符串的地方
{{ something -enter-char-\r-OR\r\n- somthing }}
function replace_callback($matches)
{
// just in case
if ( !isset($matches[1]) || !is_string($matches[1]) ) throw new Exception(__FUNCTION__.': invalid $matches[1].');
// detected var without brackets
$var = $matches[1];
// my program's processing on $var
return $var;
}
$text = ' sdfhh fdfdf {{do:somecoolthings}} sdfggg';
echo preg_replace_callback(
'/{{+(.*?)}}/',
'replace_callback',
$text
);
提前感谢!
编辑:看到这样的问题的人是程序员,他们对正则表达式知之甚少,而且这个问题的目标不同于其他2"复制"问题,我确信这篇文章对某人有用。
最终代码:
function replace_callback($matches)
{
// just in case
if ( !isset($matches[1]) || !is_string($matches[1]) ) throw new Exception(__FUNCTION__.': invalid $matches[1].');
// detected var without brackets
$var = $matches[1];
// my program's processing on $var
return $var;
}
$text = ' sdfhh fdfdf {{
do:somecoolthings
}} sdfggg';
echo preg_replace_callback(
'/{{(.*?)}}/s',
'replace_callback',
$text
);