0
0

More than 3 years have passed since last update.

正規表現 基本まとめシート

Posted at

正規表現を使う際、調べながら取り組みますが、毎回複数ページを行き来してしまうため、今後すぐ取り出せるようリストアップしました。

環境

  • Ruby
    • scanメソッドの引数に正規表現を使用して検索が可能
    • gsubメソッドの第一引数に変換前、第二引数に変換後の文字列または正規表現を用いることで置換が可能
  • Rubular

メタ文字

  • \d : 1個の半角数字
    • = [0-9]
  • \w : 1個の半角英数字とアンダースコア
    • = [a-zA-Z0-9_]
  • \t : タブ文字
  • \n : 改行文字
  • \s : 空白文字全般
    • 言語・環境によって含まれる文字が異なるので注意
      • Ruby : [ \t\r\n\f](半角スペース、タブ文字、復帰文字、改行文字、改ページ)
  • \ : エスケープ文字

    • \\t : タブ文字ではなく、「\t」という文字列を意味する
  • {n,m} : 直前の文字がn個以上、m個以下

  • {n} : 直前の文字がちょうどn文字

  • [ABC..] : AまたはBまたはCまたは...のいずれか1文字

    • ハイフンを対象にする際は、下の例のように文字の範囲の記号と扱われないよう、[]内の始めか終わりに記述
  • [a-z] : aまたはb...yまたはz

  • [a-zA-Z0-9] : aまたはb...z、AまたはB...Z、0または1...9

    • = 半角英数字1文字
  • ? : 直前の文字が1文字、または無し

  • . : 任意の1文字

  • * : 直前の文字が0文字以上

  • + : 直前の文字が1文字以上

    • *, +貪欲なマッチと呼ばれ、条件に当てはまる限り、その全てを対象にする。
    • *?, +?控えめなマッチと呼ばれ、最初にマッチした段階で、止まるようになる。
  • () : ()の中がキャプチャされる

    • キャプチャする必要なしの場合は、(?: )のように、先頭に?:をつける
    • (?:文字列)? : 文字列があり、またはなし
  • [^A] : A以外の任意の1文字

    • [^AB] : AでもなくBでもない任意の1文字
    • [AB^] : AまたはBまたは^のいずれかの1文字となるので注意
  • ^~~ : 行頭

    • ^ + : 行頭からスペースが1文字以上続く
  • ~~is $ : 行末

    • ^ +$ : 行頭から行末までスペースが1文字以上続く
  • (AB|CD) : 文字列AB、またはCD

    • 範囲を明確にするため( )、キャプチャが必要なければ(?: )

参考

現時点では、以前からお世話になっていた記事を元にまとめましたが、随時出会った正規表現を追加で更新していく予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0