文字列を指定すると、少なくとも3つの同一文字のシーケンスをチェックし、その文字の2つに置き換える正規表現を実装しようとしています。たとえば、次の文字列を有効にしたい:
sstttttrrrrrrriing
の中へ
ssttrriing
…の線に沿って何かを考えています。
$string =~ s/(\D{3,})/substr($1, 0, 2)/e;
しかし、これは次の理由で機能しません。
- 3 つのアルファベット文字が同一かどうかはチェックしません。3 つ以上の異なる文字のシーケンスに一致できます。
- 最初の一致のみを置き換えます。この正規表現のすべての一致に対応する必要があります。
誰でも私を助けることができますか?