perlを使用して文字列内の大文字の数を数えたい。
例:「EeAEzzKUwUHZws」という単語に含まれる大文字の数を知る必要があります。
Unicodeに注意してください。ストレートのAZは、アクセント付きの大文字など、他の文字には実際には移植できません。これらも処理する必要がある場合は、次を試してください。
my $result = 0;
$result++ while($string =~ m/\p{Uppercase}/g);
sub count {
$t = shift;
$x = 0;
for( split//,$t ) {
$x++ if m/[A-Z]/;
}
return $x;
}
ワンライナー方式は次のとおりです。
$count = () = $string =~ m/\p{Uppercase}/g
これはStuartWattの回答に基づいていますが、ysthがコメントに投稿したヒントに従ってワンライナーに変更されています。