Подсчет совпадений между конкретными подстроками - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть строка

1AAAAaaa>###_1BBbbbbbbb>###_2CCCCCCCCccccc

Блоки данных начинаются с «числа» и заканчиваются >.

Мне нужно посчитать, во сколько из этих блоков строчные буквы превосходят прописные.

В качестве ответа хочу получить

there are x places between number and >, where lowercase is over 50%.

Я понимаю, как это сделать для всей строки, но не для отдельных регионов.

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете разделить каждый целевой раздел строки в массив, используя 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;

ВЫХОД = 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...