Rubyシルバーによく出てくる正規表現について自分のためにメモします。
参考にしたのは、この本です。この参考書の練習問題、模擬試験で出て来た正規表現を中心に書いていきます。
[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応)Ruby公式資格教科書
以外にも正規表現の問題数は4問だけ。しかし、必ず出題されるので抑えておきたいところです。
以下は実際に[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応)Ruby公式資格教科書に載っている問題です。
| メタ文字 | メタ文字の意味 |
|---|---|
| [] | いずれか1文字を表す文字クラスをつくる |
| [^] | 〜以外の任意の1文字を表す文字クラスをつくる |
| - | []で使われると文字の範囲を表す |
| . | 任意の1文字を表す |
| () | 内部でマッチした文字列をキャプチャもしくはグループ化する |
| ? | 直前の文字やパターンが1回、もくは0回現れる |
| * | 直前の文字やパターンが0回以上連続する |
| + | 直前の文字やパターンが1回以上連続する |
| {n,m} | 直前の文字やパターンがn回以上、m回以下連続する |
| | | or条件をつくる |
| ^ | 行頭を表す |
| $ | 行末を表す |
| \ | メタ文字をエスケープしたり、\nや\wといった他のメタ文字の一部になったりする |
選択肢)
答え)
解説
選択肢)
答え)
/^[0-9][0-9]*$/
解説)
0あでもマッチします。00あでもマッチします。p "abc def 123 ghi 456".scan(/\d+/).length
答え)
解説)
123と456の2個です。p "HogeHOGEhoge"[/[A-Z][^A-Z]+/]
答え)
解説)