gpt4 book ai didi

ruby-on-rails - ruby 中的正则表达式联合逃脱了我原来的正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 07:50:09 26 4
gpt4 key购买 nike

我有多个正则表达式,我想使用 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)/

关于ruby-on-rails - ruby 中的正则表达式联合逃脱了我原来的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19609953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com