Ruby を使用して、特定の部分を操作できるように、Regexp オブジェクト (または有効な正規表現を表す文字列。任意) をトークン化したいと思います。
具体的には、次のような正規表現/文字列を取得したいと思います。
regex = /var (\w+) = '([^']+)';/
parts = ["foo","bar"]
各キャプチャを配列のリテラルに置き換える置換文字列を作成します。
"var foo = 'bar';"
次のような、正規表現を解析する単純な正規表現ベースのアプローチ:
i = -1
result = regex.source.gsub(/\([^)]+\)/){ parts[i+=1] }
…ネストされたキャプチャ グループ、非キャプチャ グループ、または文字クラス内に括弧を持つ正規表現などでは失敗します。したがって、正規表現を意味的に有効な断片に適切に分割したいという私の願望。
Ruby で使用できる既存の正規表現パーサーはありますか? 正規表現に完全に一致する(恐怖の恐怖)既知の正規表現はありますか?私が見つけていない宝石はありますか?
この質問の動機は、この質問に対する明確でシンプルな答えを見つけたいという願望です。