正規表現 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 | 挟まれた文字列を大文字に変換します。 |