如何将句子中第一个单词的首字母大写?

我正在尝试编写一个函数来清理用户输入。

我不是要使其完美。我宁愿用小写字母表示一些名称和缩写,也不愿用大写字母表示完整的段落。

我认为该函数应使用正则表达式,但是我对这些表达式很不好,需要一些帮助。

如果以下表达式后跟一个字母,我想将该字母大写。

 "."

". " (followed by a space)

"!"

"! " (followed by a space)

"?"

"? " (followed by a space)

更好的是,该函数可以在“。”,“!”之后添加一个空格。和“?” 如果这些后面跟有一封信。

如何做到这一点?

回答:

$output = preg_replace('/([.!?])\s*(\w)/e', "strtoupper('\\1 \\2')", ucfirst(strtolower($input)));

由于PHP 5.5.0中不推荐使用修饰符 e

$output = preg_replace_callback('/([.!?])\s*(\w)/', function ($matches) {

return strtoupper($matches[1] . ' ' . $matches[2]);

}, ucfirst(strtolower($input)));

以上是 如何将句子中第一个单词的首字母大写? 的全部内容, 来源链接: utcz.com/qa/407902.html

回到顶部