$data = "abcaooobooocooodoooeooofooogoooxyz";
我想做什么?
我想检查$ data变量中的每个字母,如果它前面是'ooo',那么我用大写的相同字母替换它并删除ooo,否则只返回字母
例如,当我致电
时do_it($data);
必须返回以下
abcABCDEFGxyz
到目前为止我在尝试什么?
function do_it($d) {
$d = strtolower($d);
$d = str_replace('aooo','A');
$d = str_replace('booo','B');
$d = str_replace('cooo','C');
$d = str_replace('dooo','D');
$d = str_replace('eooo','E');
... untill the end of alphabets
return $d;
}
问题
最简单的方法是什么?
答案 0 :(得分:1)
正则表达式
preg_replace('/([\w]{1})ooo/e', 'strtoupper("$1")', $data);
答案 1 :(得分:0)
function replace($string) {
return strtoupper(substr($string[0], 0, 1));
}
$text = "abcaooobooocooodoooeooofooogoooxyz";
echo preg_replace_callback("/[a-z]ooo/", "replace", $text);
// abcABCDEFGxyz