如何在此正则表达式中包含EOL?

时间:2017-01-12 08:31:29

标签: php regex

我有这个正则表达式,它可以提取任何子字符串,如{{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
);

0 个答案:

没有答案