这是一个简单的问题,我想,但我试图将.txt文件中的第一个小写字母改为大写,使用以下
$_ =~ s/^[a-z]/\U/;
Run Code Online (Sandbox Code Playgroud)
当我执行它时,会发生的是,不是将小写字母改为大写字母,而是将行尾开始的小写字母替换为该行上的最高位.例如,nAkld987aBALPaapofikU88代替被替换的行NAkld987变为Akld987...
RC.*_*RC. 30
你可以/应该使用ucfirst.我说应该对维护者来说更明显的是你的意图是大写字符串的第一个字母.我喜欢正则表达式,但在这种情况下,我觉得这不是正确的方法.
my $str = "test";
print ucfirst($str);
Run Code Online (Sandbox Code Playgroud)
Roh*_*ain 23
您需要捕获first character捕获组,并使用back reference它将其转换为uppercase使用\u.
试试这个: -
$_ =~ s/^([a-z])/\u$1/;
Run Code Online (Sandbox Code Playgroud)
cod*_*ict 15
你可以使用这个ucfirst功能.
如果你想使用正则表达式,你可以这样做:
$_ =~ s/^([a-z])/\u$1/;
Run Code Online (Sandbox Code Playgroud)
要么
$_ =~ s/^([a-z])/\U$1\E/;
Run Code Online (Sandbox Code Playgroud)