slice(src, pattern, n = 0) -> String | nil
[permalink][rdoc][edit] [added by ripper/lexer]-
Ruby プログラム src のうち、パターン pattern の n 番目の括弧にマッチする文字列を取り出します。
マッチしない場合は nil を返します。
- [PARAM] src:
- Ruby プログラムを文字列か IO オブジェクトで指定します。
- [PARAM] pattern:
- 取り出すプログラムのパターンを文字列で指定します。
- [PARAM] n:
- pattern で指定した文字列の内、n 番目の括弧の中の文字列だけが必要な時に指定します。省略すると 0 (pattern 全体)になります。
pattern は Ripper のイベント ID のリストを文字列で記述します。また pattern には Ruby の正規表現と同じメタ文字も使えます。ただし「.」は任意のトークン 1 つにマッチし、その他のメタ文字もすべて文字単位ではなくトークン単位で動作します。
使用例
require 'ripper' p Ripper.slice(%(<<HERE\nstring\#{nil}\nHERE), "heredoc_beg .*? nl $(.*?) heredoc_end", 1) # => "string\#{nil}\n"
イベント ID は Ripper::SCANNER_EVENTS で確認できます。