Я пытаюсь создать систему, в которой я могу преобразовывать значения RegEx в целые числа и наоборот. где ноль будет самым основным регулярным выражением (вероятно, "/./"
), а любые последующие числа будут более сложными регулярными выражениями
Мой лучший подход до сих пор заключался в том, чтобы поместить все возможные значения, которые могли содержаться в регулярном выражении, в массив:
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 )}/;
Самая большая проблема этого подхода заключается в том, что недопустимый RegExp может быть легко сгенерирован.
Есть ли уже установленный алгоритм для достижения того, что я пытаюсь? если нет, есть предложения?
Thanx
Стив