PHP需要在双方括号内使用大写文本

时间:2015-03-30 03:06:03

标签: php

我需要帮助来大写双方括号内的文本。例如:

我想转到下面:

hi, [[i]] want [[this]] to be [[uppercase]]

结果如下:

hi, [[I]] want [[THIS]] to be [[UPPERCASE]]

当我使用下面的代码时,一切都变为大写:

$pattern = '/\[\[(.*)\]\]/';
$new_string = preg_replace_callback($pattern, 
    function($match)
    {
        return strtoupper($match[0]);
    }
    , $string);

我的代码中缺少什么?

1 个答案:

答案 0 :(得分:3)

你的模式很贪婪,它想要一切......

更改

$pattern = '/\[\[(.*)\]\]/';

$pattern = '/\[\[(.*?)\]\]/';

如果您需要更多信息,请参阅以下主题链接。

What do lazy and greedy mean in the context of regular expressions? http://www.rexegg.com/regex-quantifiers.html