当前位置: 首页 > 面试题库 >

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

汤洋
2023-03-14
问题内容

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

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

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

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

 "."
 ". " (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)));


 类似资料:
  • 我在大学上Java入门课程。我的作业是写一个程序来显示一个句子中1个字母单词的数量,一个句子中2个字母单词的数量...等等。句子是用户输入的。我应该使用一个循环,但不允许使用数组。 然而,现在只是开始,我只是想找出句子第一个单词的字母数。我得到的结果要么是字母数不正确,要么是字符串索引超出范围。 例如,当我输入“这是一个句子”时,它会给我“字符串索引超出范围:4”对此的任何帮助都将不胜感激。

  • 问题内容: 我知道这个线程到处都是,但是,情况稍有不同。在我公司使用的套件中,我对SQL的访问权限有限,并且无法运行带有函数等的复杂代码。我有一个SQL查询,该查询将多列数据编译为一列,并使用group by子句淘汰了多重性。但是,由于存在差异,因此这导致所有结果以大写形式返回。我现在必须将其改回原来的样子,即每个单词的首字母大写。我需要一种非常简洁的方法。该套件使用VBScript和XML,但是

  • 问题 你想把字符串中每个单词的首字母转换为大写形式。 解决方案 使用“拆分-映射-拼接”模式:先把字符串拆分成单词,然后通过映射来大写单词第一个字母小写其他字母,最后再将转换后的单词拼接成字符串。 ("foo bar baz".split(' ').map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' ' #

  • 将字符串中每个单词的首字母大写。 使用 ``String.replace()来匹配每个单词的第一个字符,并使用String.toUpperCase()` 来将其大写。 const capitalizeEveryWord = str => str.replace(/\b[a-z]/g, char => char.toUpperCase()); capitalizeEveryWord('hello

  • 问题内容: 我有一个字符串:“ hello good old world”,我想将每个单词的每个首字母大写,而不是使用.toUpperCase()整个字符串。是否有现成的java助手可以完成这项工作? 问题答案: 看看ACL WordUtils。

  • 问题内容: 我想将句子的首字母大写,如果可能的话还要大写逗号后的首字母。我想在这里添加代码: 问题答案: 您可以使用伪元素将元素的首字母大写。 这是仅使用CSS就能获得的最接近的结果。您可以使用javascript(与jQuery结合使用)将每个句点(或逗号,如您所愿)后的每个字母包装在。您可以添加与上述相同的CSS 。或一起用javascript完成。 这是css方法的代码段: