![](/img/trans.png)
[英]Ruby Regex Error: incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
[英]Regexp union in ruby escapes my original regex
我有多个正则表达式,我想使用Regexp.union将它们组合在一个大的正则表达式中,所以我有这个正则表达式作为示例:
^image\d*$
所以我试试这个:
regex = %w(^image\d*$)
=> ["^image\\d*$"]
re = Regexp.union(regex)
=> /\^image\\d\*\$/
并且它将我的正则表达式转移到/\\^image\\\\d\\*\\$/
所以当我尝试基本情况时它不匹配:
"image0".match(re)
=> nil
我怎么能得到这个?
传递Regexp
对象。 %w(...)
是字符串文字。 使用%r(...)
或/.../
作为正则表达式文字。
regex = %r(^image\d*$)
# => /^image\d*$/
Regexp.union(regex)
# => /^image\d*$/
array_of_regexs = [/a/, /b/, /c/]
# => [/a/, /b/, /c/]
Regexp.union(array_of_regexs)
# => /(?-mix:a)|(?-mix:b)|(?-mix:c)/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.