PHP用大写字母替换每行的第一个较低的cased char

时间:2017-03-03 02:23:58

标签: php regex preg-replace preg-replace-callback

我尝试过使用以下

$string= 'hello world<br>this is newline<br><br>another line';
echo $string.'<hr><br>';
echo preg_replace_callback('/^[a-zA-Z0-9]/m', function($m) {
  return strtoupper($m[0]);
}, $string);

输出:

Hello world
this is newline

another line

我需要更改单词“this”和“another”的第一个字母。所以输出变成这样:

Hello world
This is newline

Another line

感谢。

1 个答案:

答案 0 :(得分:1)

以下是如何实现您想要的目标:

$string= 'hello world<br>this is newline<br><br>another line<hr><br>';

$parts = preg_split( "/<br>|<hr>/", $string ); // split string by either <br> or <hr>
$parts = array_filter($parts); // clean array from empty values
$parts = array_map('ucfirst',$parts); // array of lines with first letter capitalized

echo $partString = implode("<br>",$parts);