Это сработало для меня таким образом, что вы можете передать переменную в регулярное выражение, синтаксис довольно сложный, но он работает !!с подачей всех элементов массива в Union может быть более сложным, если опции различны для каждого элемента.Обратите внимание на использование # и фигурных скобок.
s = ' select /* aaa Select /* SElectXXX ZZZ_SelecT '
regex1 = '\bselect\b' # | /\bselect\b/ix|(?-mix:myTable))'
regex2 = '\/\*'
puts 'scan1 ' + s.scan(/#{regex1}/ix).to_s
Хороший вопрос, ничего плохого, все включено.Удачи!Больше хороших трюков здесь введите описание ссылки здесь
, и это также работает для Union, но обратите внимание, что это не парсинг элементов массива, а только фиксированное количество элементов, в данном случае = 2.
regu = Regexp.union(/#{regex2}/, /#{regex1}/ix)
puts 'scanUN ' + s.scan(regu).to_s
#scanUN ["select", "/*", "Select", "/*"]