将句子中的第一个单词更改为大写

Posted

技术标签:

【中文标题】将句子中的第一个单词更改为大写【英文标题】:Change first word in a sentence to uppercase 【发布时间】:2013-04-04 18:35:04 【问题描述】:

我希望将句子的第一个单词转换为大写,但不知道该怎么做。这是我目前所拥有的:

$o = "";

  if((preg_match("/ibm/i", $m)) || (preg_match("/hpspecial/i", $m))) 

$o = strtoupper($m);

 else 

  $o = ucwords(strtolower($m));


我想使用hpspecial ID 中的uppercase,其中HP 是要大写的句子的第一部分,但这会将整个句子大写。我如何只使句子的 HP 大写?

【问题讨论】:

你能给出完整的原句吗,你想把它转换成什么?你的问题我不是很清楚。 【参考方案1】:

你可以通过ucfirst点他的

ucfirst — 将字符串的第一个字符变为大写

喜欢

$foo = 'hello form world';
$foo = ucfirst($foo); 

live output

编辑: 使其第一个单词大写,你可以像

<?php
$foo = 'hello form world ';

$pieces = explode(" ", $foo);
$pieces[0] = strtoupper($pieces[0]);
$imp = implode(" ", $pieces);
echo $imp;

live result

【讨论】:

谢谢。但我希望 SENTENCE 的整个单词都是大写的,而不是第一个字母。我知道我必须使用 strtoupper,但在我的代码中,我提供了它会将“hpspecial”的整个句子转换为大写,我只想要句子的第一个单词 upper【参考方案2】:

这样的事情怎么样:

$arr = explode(' ');
$arr[0] = strtoupper($arr[0]);

echo implode(' ' , $arr);

不知道有没有内置函数,不过我觉得应该可以吧?

【讨论】:

【参考方案3】:

看来你真的没有什么特别的模式,为什么不直接用preg_replace?

$search = array('/ibm/i', '/hpspecial/i');
$replace = array('IBM', 'HPspecial');

$string = preg_replace($search, $replace, $string);

无论如何你都必须这样做,因为你无法真正区分 HP 和 Special(至少通过简单的方法);

您实际上可以使用 str_replace 使用相同的方法,因为据我所知,您没有使用复杂的模式。

有时最简单的解决方案是最好的

【讨论】:

【参考方案4】:

你可以使用自定义函数,比如

function uc_first_word ($string)

   $s = explode(' ', $string);   
   $s[0] = strtoupper($s[0]);   
   $s = implode(' ', $s);
   return $s;

$string = '你好,世界。这是一个测验。'; echo $s = uc_first_word ($string)

所以输出将是

HELLO world. This is a test

所以空格前的第一个单词将与整个句子一样大。

【讨论】:

以上是关于将句子中的第一个单词更改为大写的主要内容,如果未能解决你的问题,请参考以下文章

如何在句子列表中的单词和左括号之间创建空格

将 CSV 文件的第一行更改为全部大写

Ruby中的大写,交换大小写和反转[重复]

php将句子中的第二个字母大写最少10个字符

将每个句子的第一个字母大写python [重复]

根据每个句子的第一个单词将 pandas 数据框列中的字符串列表分解为新列