正規表現において、同じ文字の連続や、パターンの繰り返しの出現をマッチします。
目次
同一文字の連続(繰り返し)の正規表現
「何の文字かは問わず、同じ文字の連続」といったマッチングを行うには、後方参照を使います。
下記は、メタ文字「.(改行以外の一文字)」で見つかったマッチング文字を、その後の「\1」で後方参照した例です。バックスラッシュの後の数字が、何番目のマッチかを指定します。
// メタ文字を後方参照 (.)\1+
上記は、括弧でキャプチャした一番目のマッチ(というか、「.」は一文字しかマッチしないですが・・)の文字を「\1」で指定しますので、その文字が「+(1回以上の連続)」という意味ですね。
【実践】Vim で、文字の連続をマッチし、一文字に置換する
一つ目の文字を「.」でマッチし、あとは、量指定子で連続数を指定します。Vim の例です。
連続2文字の場合
// メタ文字を後方参照 %s/(.)\1+/
連続2文字以上の場合
// メタ文字を後方参照 %s/(.)\1{2,}/
連続2文字以上、3文字以下の場合
// メタ文字を後方参照 %s/(.)\1{2,3}/
文字の繰り返しの参考情報
正規表現における量指定子の使い分けは、こちらで特集しています。