什么是最简单的方法来利用的首字母的每个字一个字符串?

有帮助吗?

解决方案

看看 常见问题.

我不相信ucfirst()满足运的问题,以利用的首字母的每一个字一个字符串中没有分裂串并加入它。

其他提示

作为@布莱恩提到的评论当前接受的答案通过@piCookie是错误的!

$_="what's the wrong answer?";
s/\b(\w)/\U$1/g
print; 

这将打印"什么是错误的答案吗?"注意到错误地记作资本S

作为 常见问题 说你可能是更好的使用

s/([\w']+)/\u\L$1/g

文字的::自动套用格式

看看 ucfirst 功能。

$line = join " ", map {ucfirst} split " ", $line;
$capitalized = join '', map { ucfirst lc $_ } split /(\s+)/, $line;

通过捕获的空白,它插在列表中用于重建原来的间隔。"ucfirst lc"利用"案文",以"文本"。

$string =~ s/(\w+)/\u$1/g;

应该只是罚款

这种利用仅有的第一个单词的每一行:

perl -ne "print (ucfirst($1)$2)  if s/^(\w)(.*)/\1\2/" file

注意到常见问题解决方案不会工作如果你有的话,是在所有上限,并希望他们能够(只)资本代替。你可以做一个更复杂的regex,或者只是做一个lc上串申请前的常见问题解决方案。

你可以使用'标题的情况下',它是一个很酷的代码写在Perl。

ucfirst 功能在地图肯定这样做,但只有在一个非常简陋的方式。如果你想要的东西,多一点的成熟,看一看 约翰*格鲁伯的TitleCase脚本.

试试这个:

echo "what's the wrong answer?" |perl -pe 's/^/ /; s/\s(\w+)/ \u$1/g; s/^ //'

什么是错误的答案吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top