■パターンのグループ化

+ 直前の文字が1つ以上続く
? 直前の文字があって1つだけ(0個もしくは1個)存在する

 

#!/bin/perl
$a = "aaaabbbcdddadeddd";

if ( $a=~s/a+/A/g ) {
print "$a\n";
}

$a = "aaaabbbcdddadeddd";
if ( $a=~tr/a+/A/ ) {
print "$a\n";
}

$a = "aaaabbbcdddadeddd";
if ( $a=~s/a?/A/g ) {
print "$a\n";
}

実行結果

AbbbcdddAdeddd
AAAAbbbcdddAdeddd
AAAAAbAbAbAcAdAdAdAAdAeAdAdAdA