正規表現
Ruby では、/で囲まれた部分が正規表現となります。(例: /regex/)
使用できる正規表現の一覧
記号 |
説明 |
. |
改行を除く任意の 1 文字。複数行モードでは改行も含む |
* |
直前の正規表現の 0 回以上の繰り返し(最長一致) |
*? |
直前の正規表現の 0 回以上の繰り返し(最短一致) |
+ |
直前の正規表現の 1 回以上の繰り返し(最長一致) |
+? |
直前の正規表現の 1 回以上の繰り返し(最短一致) |
? |
直前の正規表現の 0 または 1 回のマッチ(最長一致) |
?? |
直前の正規表現の 0 または 1 回のマッチ(最短一致) |
^ |
文字列の先頭にマッチ |
$ |
文字列の末尾にマッチ |
| |
選択 |
\1,\2,...\n |
後方参照。() でグループ化した文字列の n 番目にマッチ |
{m} |
直前の正規表現の m 回の繰り返し(最長一致) |
{m,} |
直前の正規表現の m 回以上の繰り返し(最長一致) |
{m,n} |
直前の正規表現の m 回以上 n 回までの繰り返し(最長一致) |
{m}? |
直前の正規表現の m 回の繰り返し(最短一致) |
{m,}? |
直前の正規表現の m 回以上の繰り返し(最短一致) |
{m,n}? |
直前の正規表現の m 回以上 n 回までの繰り返し(最短一致) |
[ ] |
[] 内の文字いずれかの一文字にマッチ |
[:alnum:] |
数字とアルファベット [0-9a-zA-Z] と同じ |
[:alpha:] |
アルファベット [a-zA-Z] と同じ |
[:blank:] |
空白文字 ( スペース、タブ等 ) |
[:cntrl:] |
制御文字 |
[:digit:] |
数字 [0-9] と同じ |
[:graph:] |
印字可能な可視文字 |
[:lower:] |
アルファベットの小文字 [a-z] と同じ |
[:print:] |
制御文字以外の文字 |
[:punct:] |
句読点 |
[:space:] |
スペース、タブ、改ページ |
[:upper:] |
アルファベットの大文字 [A-Z] と同じ |
[:xdigit:] |
16 進数 |
( ) |
正規表現のグループ化 |
(?#) |
コメント。マッチングなし |
(?: ) |
後方参照を行わずにグループ化 |
(?= ) |
括弧内の正規表現が続く |
(?! ) |
括弧内の正規表現が続かない |
(?> ) |
バックトラックを行わない |
(?ixm-ixm) |
オプションの on,off |
(?ixm-ixm: ) |
括弧内限定のオプションの on,off |
\w |
数字とアルファベットとアンダースコア [0-9a-zA-Z_] と同じ |
\W |
\w 以外 |
\s |
空白文字。[\t\n\r\f] と同じ |
\S |
\s 以外 |
\d |
数字 [0-9] と同じ |
\D |
\d 以外 |
\A |
文字列の先頭。改行の有無の影響なし |
\Z |
文字列の末尾。 |
\z |
文字列の末尾。改行の有無の影響なし |
\b |
文字列の区切りにマッチ |
\B |
文字列の中にマッチ |
\G |
文字列の先頭もしくは前のマッチが終了した位置にマッチ |
正規表現オプション
オプションは /正規表現/オプションの形で指定する。
記号 |
説明 |
i |
大文字、小文字の区別を行わない |
o |
最初の一度だけ式展開を行う |
x |
正規表現中の空白を無視する |
m |
複数行モード |
|
|