ブログ

正規表現の使い方2(連続文字とのマッチ)

at_takumi.mizutani
2022年8月2日 11時40分

本記事で紹介する正規表現

本記事で紹介する正規表現の概要について下表にまとめます。

各正規表現の詳細な説明についてはその後に説明します。

正規表現 説明 正規表現の例 マッチする文字列
* *の前の文字を0回以上繰り返す文字列とマッチします デグー* デグ
デグー
デグーー
+ +の前の文字を0回以上繰り返す文字列とマッチします デグー+ デグー
デグーー
{n} {n}の前の文字をn回繰り返す文字列とマッチします(nは0以上の整数) デグー{3} デグーーー
{n,m} {n,m}の前の文字をn〜m回繰り返す文字列とマッチします(n, mは0以上の整数、n < m) デグー{1,3} デグー
デグーー
デグーーー

直前の文字を0回以上繰り返す文字列とのマッチ

*を使用すると、*の前の文字を0回以上繰り返す文字列とマッチします。

以下の例では、*の前の"ー"を0回以上繰り返す文字列とマッチすることになるので、デグ、デグー、デグーー、等とマッチします。

正規表現
デグー*
マッチする文字列
デグ
デグー
デグーー

直前の文字を1回以上繰り返す文字列とのマッチ

+を使用すると、+の前の文字を0回以上繰り返す文字列とマッチします。

以下の例では、+の前の"ー"を1回以上繰り返す文字列とマッチすることになるので、デグー、デグーー、等とマッチします。

正規表現
デグー+
マッチする文字列
デグー
デグーー

直前の文字を指定回数繰り返す文字列とのマッチ

{n} (nは0以上の整数)を使用すると、{n}の前の文字をn回繰り返す文字列とマッチします。

以下の例では、{3}の前の"ー"を3回繰り返す文字列とマッチすることになるので、デグーーーとマッチします。

正規表現
デグー{3}
マッチする文字列
デグーーー

直前の文字を指定範囲の回数繰り返す文字列とのマッチ

{n,m} (n, mは0以上の整数、n < m)を使用すると、{n,m}の前の文字をn〜m回繰り返す文字列とマッチします。

以下の例では、{1,3}の前の"ー"を1〜3回繰り返す文字列とマッチすることになるので、デグー、デグーー、デグーーーとマッチします。

正規表現
デグー{1,3}
マッチする文字列
デグー
デグーー
デグーーー

また、mを省略することで{n,}の前の文字をn回以上繰り返す文字列とマッチし、

nを省略することで{,m}の前の文字をm回以下繰り返す文字列とマッチします。

以下の例では、{,2}の前の"ー"を2回以下繰り返す文字列とマッチすることになるので、デグ、デグー、デグーーとマッチします。

正規表現
デグー{,2}
マッチする文字列
デグ
デグー
デグーー

正規表現についての記事

  1. 正規表現の使い方1(任意の文字とのマッチ)
  2. 本記事
  3. 正規表現の使い方3(OR条件を用いたマッチ)
  4. 正規表現の使い方4(grepによるファイル内文字列の検索)
  5. 正規表現の使い方5(sedによるファイル内文字列の加工)