标签: regex string perl
我有一个包含所有大写单词的字符串,我想只将每个单词的第一个字母设为大写,或者将第一个字符转换为小写。我已经在使用正则表达式一段时间了,并且无法正确处理。
答案 0 :(得分:4)
my $str = "FOOBAR FOOBAR"; $str =~ s/(\S+)/\u\L$1/g; print $str;
输出
Foobar Foobar
在perldoc中查看ucfirst和lc。
ucfirst
lc
答案 1 :(得分:4)
ucfirst()这是一个完美的工作,不需要正则表达式:
$ echo 'FOO BAR BASE' | perl -nE '$_ = lc($_); say join " ", map { ucfirst $_ } split /\s/'
输出:
Foo Bar Base