正規表現の値を整数に、またはその逆に変換できるシステムを作成しようとしています。ここで、ゼロは最も基本的な正規表現(おそらく "/./"
)であり、後続の数値はより複雑な正規表現になります
これまでの私の最善のアプローチは、正規表現内に含めることができるすべての可能な値を配列に固定することでした。
values = [ "!", ".", "\/", "[", "]", "(", ")", "a", "b", "-", "0", "9", .... ]
次に、その配列から次のように取得します。
def get( integer )
if( integer.zero? )
return '';
end
integer = integer - 1;
if( integer < values.length )
return values[integer]
end
get(( integer / values.length ).floor) + get( integer % values.length);
end
sample_regex = /#{get( 100 )}/;
このアプローチの最大の問題は、無効な正規表現が簡単に生成される可能性があることです。
私が試していることを達成するためのすでに確立されたアルゴリズムはありますか?そうでない場合、何か提案はありますか?
スティーブに感謝