正規表現について基礎から学習したので、自分の言葉で一覧としてまとめておく


Rubyチェリー本の著者の方が4回にわたりハンズオンで理解できる正規表現に関する記事をQiitaに公開してくださっており、無料でいいのかレベルでわかりやすかったので記録として残しておく

初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」 - Qiita

正直まとめてないものもあるので、詳しくは↑の記事参照

エスケープについて

後述するが「エスケープ」という単語が出てくる。
正規表現のメタ文字なのか、それとも文章中の純粋な文字として扱うのかを伝える為に\を使う事がある。
それをエスケープというらしい。

正規表現の[]ではなく純粋に検索したい文章の中の"[ ]"を検索したい時に\[ \]と書くと、文章中の"[ ]"が検索できるといった仕組み。

一覧

* : 0文字以上
+ : 1文字以上
? : 直前の文字が0もしくは1字。
d\ :
w\ :
/\ : 最初のスラッシュ(/)で検索したい文字列中のバックスラッシュ(\)をエスケープする

^ : ①行頭 ②〜以外の ③または^
< ex② > [^AB]なら「AB以外の文字列」
< ex③ > [AB^]なら「AかBか^」

$ : 行末

\n : 行末+改行列 置換してある一文を削除したい場合、$指定だと改行が残るが、\n指定なら改行を残さず削除が可能
\t : タブによるスペース
\s : 空白文字全般(スペース、タブ、改行文字等)
\b : 単語の境界を指す。 
「bartender」と「art」を含む文章のartだけ抜き出したい時は、\bart\bで可能。この場合の正規表現内訳は\bart\b
他にもRailsの「form_with do |f|」「f.label」や「f.text_form」のfだけ抜き出したい時などに使ったりする。

| : OR(または)
. : 何らかの文字

^.+ : 行頭からの何らかの文字が1文字以上続く
.+$ :行末まで何らかの文字が1文字以上続く

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