我有一个字符串
1AAAAaaa>###_1BBbbbbbbb>###_2CCCCCCCCccccc
数据块以“数字”开头,以>
结尾。
我需要计算这些块中有多少小写字母数大于大写字母。
作为答案我想得到
there are x places between number and >, where lowercase is over 50%.
我理解如何为整个字符串执行此操作,但不了解单独的区域。
答案 0 :(得分:0)
您可以使用split将字符串的每个目标部分分隔成一个数组。 然后遍历数组并进行计数。
my $string = 'AAAAaaa>1BBbbbbbbb>2CCCCCCCCccccc>3DDDDDDDDDddd>4FFFFfffffff>';
my @targets = split(/(?=\d+\w+>)/, $string);
my $successes = 0;
foreach my $target (@targets){
my $target_lc = $target =~ tr/a-z//;
my $target_uc = $target =~ tr/A-Z//;
if($target_lc > $target_uc){
$successes++;
}
}
print $successes;
OUTPUT = 2