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]+/]
答え)
解説)