如何在Perl中将每个单词的首字母大写?
时间:2020-03-05 18:57:14 来源:igfitidea点击:
在字符串的每个单词中首字母大写的最简单方法是什么?
解决方案
回答
看一下ucfirst函数。
$line = join " ", map {ucfirst} split " ", $line;
回答
参见常见问题解答。
我不相信ucfirst()可以满足OP的问题,即在不分割字符串并随后将其连接的情况下,将字符串中每个单词的首字母大写。
回答
$string =~ s/(\w+)/\u/g;
应该很好
回答
请注意,如果单词全部用大写字母,而又想将其全部(仅)大写,则FAQ解决方案将不起作用。我们可以制作更复杂的正则表达式,也可以在应用FAQ解决方案之前对字符串执行lc。
回答
映射中的ucfirst函数当然可以执行此操作,但仅以非常基本的方式进行。如果我们想要更高级的内容,请查看John Gruber的TitleCase脚本。
回答
正如@brian在评论中提到的那样,@ piCookie当前接受的答案是错误的!
$_="what's the wrong answer?"; s/\b(\w)/\U/g print;
这将打印"什么是错误的答案?"注意大小写错误的S
如常见问题解答所述,我们可能最好使用
s/([\w']+)/\u\L/g
或者Text :: Autoformat
回答
$capitalized = join '', map { ucfirst lc $_ } split /(\s+)/, $line;
通过捕获空白,它将插入列表中,并用于重建原始间距。 " ucfirst lc"将" teXT"大写为" Text"。
回答
我们可以使用" Title Case",它是用Perl编写的非常酷的代码。