Ruby プログラムメモ


トップ

正規表現

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 複数行モード


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送