yuuki blog

プログラミング をアプトプットしています。

正規表現 Rails (正規表現)

そもそも正規表現とは?

正規表現とは、わかりやすく定義すると、文字列の一部分を抽出・置換したり、文字列が制約を満たしているかを検出するための表現方法です。

基本的な正規表現一覧

                               基本的な正規表現を一覧にしました

. 任意の1文字 にマッチします。
+ 直前の文字が 1回以上 繰り返す場合にマッチします。
最長一致。条件に合う最長の部分に一致します。
* 直前の文字が 0回以上 繰り返す場合にマッチします。
最長一致。条件に合う最長の部分に一致します。
? 直前の文字が 0個か1個 の場合にマッチします。
最長一致。条件に合う最長の部分に一致します。
+? 直前の文字が 1回以上 繰り返す場合にマッチします。
最短一致。条件に合う最短の部分に一致します。
*? 直前の文字が 0回以上 繰り返す場合にマッチします。
最短一致。条件に合う最短の部分に一致します。
?? 直前の文字が 0個か1個 の場合にマッチします。
最短一致。条件に合う最短の部分に一致します。
| いずれかの条件 (OR条件) として使われます。
\ 直後の正規表現記号を エスケープ します。
[...] 角括弧に含まれるいずれか1文字にマッチします。
[^...] 角括弧に含まれる文字以外にマッチします。
(...) 文字を1つのグループにまとめることができます。
{n} 直前の文字の桁数を指定できます。
{n,} 直前の文字の最小桁数のみ指定できます。
{n,m} 直前の文字の最小桁数と最大桁数を指定できます。
最長一致。条件に合う最長の部分に一致します。
{n,m}? 直前の文字の最小桁数と最大桁数を指定できます。
最短一致。条件に合う最短の部分に一致します。

                                             定義済みの正規表現

文字 説明
\t タブ
\r 改行。CR(Carriage Return:0x0D)
\n 改行。LF(Line Feed:0x0A)
\d すべての数字
\D すべての数字以外の文字
\s 垂直タブ以外のすべての空白文字
\S すべての非空白文字
\w アルファベット、アンダーバー、数字
\W アルファベット、アンダーバー、数字以外の文字

特定の位置関係の正規表現

文字 説明
^ 直後の文字が行の先頭にある場合にマッチします。
$ 直前の文字が行の末尾にある場合にマッチします。
\< 単語の先頭にマッチします。
\> 単語の末尾にマッチします。
\b 単語の先頭か末尾にマッチします。
\B 単語の先頭か末尾以外にマッチします。
\A ファイルの先頭にマッチします。
\z ファイルの末尾にマッチします。
\G 直前の一致文字列の末尾にマッチします。

                                    置換文字列で使える正規表現

文字 説明
\0 一致した文字列全体に置換します。
\1 ~ \9 一致した文字列の1~9番目に対応する文字列に置換します。
\l 次の1文字を小文字に変換します。
\L...\E 挟まれた文字列を小文字に変換します。
\u 次の1文字を大文字に変換します。
\U...\E 挟まれた文字列を大文字に変換します。