Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ruby中的Regexp联合转义了我原来的regex_Ruby On Rails_Ruby_Regex - Fatal编程技术网

Ruby on rails ruby中的Regexp联合转义了我原来的regex

Ruby on rails ruby中的Regexp联合转义了我原来的regex,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我有多个正则表达式,我想使用Regexp.union将它们合并到一个大正则表达式中,因此我有一个正则表达式作为示例: ^image\d*$ 所以我试着这样做: regex = %w(^image\d*$) => ["^image\\d*$"] re = Regexp.union(regex) => /\^image\\d\*\$/ 它将我的正则表达式转义为/^image\\d\*$/,因此当我尝试基本情况时,它不匹配: "image0".match(re) => nil

我有多个正则表达式,我想使用Regexp.union将它们合并到一个大正则表达式中,因此我有一个正则表达式作为示例:

^image\d*$
所以我试着这样做:

regex = %w(^image\d*$)
=> ["^image\\d*$"]
re = Regexp.union(regex)
=> /\^image\\d\*\$/
它将我的正则表达式转义为
/^image\\d\*$/
,因此当我尝试基本情况时,它不匹配:

"image0".match(re)
 => nil 
我怎样才能绕过这个?

传递对象<代码>%w(…)是字符串文字。对正则表达式文本使用
%r(…)
/…/

regex = %r(^image\d*$)
# => /^image\d*$/
Regexp.union(regex)
# => /^image\d*$/


这是预期的行为:我投票决定不公开,因为另一个问题确实回答了这个问题——有这个问题的其他人更可能用谷歌搜索上述问题,而不是问regex unon如何工作。我如何使用regex数组?
array_of_regexs = [/a/, /b/, /c/]
# => [/a/, /b/, /c/]
Regexp.union(array_of_regexs)
# => /(?-mix:a)|(?-mix:b)|(?-mix:c)/