我如何可以利用的首字母的每一个字一个字符串中在Perl?
-
09-06-2019 - |
题
什么是最简单的方法来利用的首字母的每个字一个字符串?
解决方案
看看 常见问题.
我不相信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/^ //'
什么是错误的答案吗?
不隶属于 StackOverflow