RegExの値を整数に変換できるシステムを作成しようとしています。ゼロは、最も基本的な正規表現(おそらく"/./"
を)だろう、とそれ以降の数字は、より複雑な正規表現のRegExp Counting System
私の最善のアプローチこれまでの配列に正規表現の中に含まれていることができ、すべての可能な値を固執することだっただろう。ここで
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)}/;
このアプローチの最大の問題は、無効な正規表現を容易に生成することができるということです。
私が試していることを達成するために既に確立されたアルゴリズムがありますか?そうでない場合は、何か提案しますか?
ありがとう
スティーブ
「どのようにそれらを通常の表現のルールと組み合わせるか」。 正規表現の無限の範囲が必要なので、正規表現辞書は私の目的に合致しません。最も複雑な形から始まり、無限に向かってますます複雑になりつつあります。 – Stefan