BETA

正規表現チートシート

投稿日:2018-11-09
最終更新:2018-11-09

文字クラス

  • . : 任意の1文字
  • [^A] : A以外の任意の文字
  • \t : タブ文字
  • \r : 復帰文字
  • \n : 改行文字
  • \d : 1個の半角数字(0123456789)
  • \w : 英単語を構成する文字を表すメタ文字 「\w = [a-zA-Z0-9_]」という仕様になっている。
  • \s : 空白文字全般
  • \W : 英単語の構成文字以外(記号や空白文字など)
  • \D : 半角数字以外
  • \S : 空白文字以外

量指定子

  • ? : 直前の文字が1つ、または無し
  • [AB] : AまたはBのいずれか1文字(文字制限はないので、2文字に限らずより多くの文字数を含める事も可能)
  • + : 直前の文字が1文字以上
  • * : 直前の文字が0文字以上
  • +? : 直前の文字が1文字以上 最小量指定子 パターンにマッチする中で最も短い結果を返す
  • *? : 直前の文字が0文字以上 最小量指定子 パターンにマッチする中で最も短い結果を返す
  • {n, m} / {n} : 文字の個数を指定する

    • {n, m}とすれば「直前の文字がn個以上、m個以下」の意味になり、{n}とすれば「直前の文字がちょうどn個」という意味になる
  • {n,} : 直前の文字がn個以上

  • {,n} : 直前の文字がn個以下

アンカー

文字ではなく「位置」を指定する

  • ^ : 行頭を表す
  • $ : 行末を表す
  • \b : 単語の境界を表す
  • \B : 単語の境界以外の位置
  • (?<=AAA) : AAAという文字列の直後の位置を表す肯定の後読み
  • (?=AAA) : AAAという文字列の直前の位置を表す肯定の先読み
  • (?<!AAA) : AAAではない文字列の直後の位置を表す否定の後読み
  • (?!AAA) : AAAではない文字列の直前の位置を表す否定の後読み

その他

  • (patern) : キャプチャ patternに合致する文字列を取り出す

    • ()の数だけ連番が振られるため、abcのような文字列に対して(a)(b)(c)とした場合、$1 #=> a; $2 #=> b; $3 #=> cのようになる
  • $1 / \1 : 連番 キャプチャで取り出した文字列にアクセスするために利用する 1番から始まる

  • (?:) : グループ化 ?:を含めることでキャプチャの対象外とできる
  • | : OR条件

Rubyにおける正規表現

  • \A : 文字列の先頭を表すアンカー 行頭ではなく文字列の先頭
  • \z : 文字列の末尾を表すアンカー 行末ではなく文字列の末尾
  • \Z : 文字列の末尾を表すアンカー 改行文字を含めた末尾となるため、改行文字を間に含む文字列の場合、2行目、3行目まで対象になる。
  • (?<name>pattern) : 名前付きキャプチャ 連番ではなくnameでpatternに合致する文字列を扱うことができるようになる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@hikeyの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう