如何在Perl中只使每个单词中的第一个字符为大写

时间:2014-11-13 21:08:49

标签: regex string perl

我有一个包含所有大写单词的字符串,我想只将每个单词的第一个字母设为大写,或者将第一个字符转换为小写。我已经在使用正则表达式一段时间了,并且无法正确处理。

2 个答案:

答案 0 :(得分:4)

my $str = "FOOBAR FOOBAR";
$str =~ s/(\S+)/\u\L$1/g;
print $str;

输出

Foobar Foobar

在perldoc中查看ucfirstlc

答案 1 :(得分:4)

ucfirst()这是一个完美的工作,不需要正则表达式:

$ echo 'FOO   BAR BASE' |
    perl -nE '$_ = lc($_); say join " ", map { ucfirst $_ } split /\s/' 

输出:

Foo   Bar Base