使用Regex表达式搜索Ruby数组

前端之家收集整理的这篇文章主要介绍了使用Regex表达式搜索Ruby数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我有一个小的 ruby函数,分割出一个 Ruby数组,如下所示: –
def rearrange arr,from,to
  sidx = arr.index from
  eidx = arr.index to
  arr[sidx] = arr[sidx+1..eidx]
end

arr= ["Red","Green","Blue","Yellow","Cyan","Magenta","Orange","Purple","Pink","White","Black"]
start = "Yellow"
stop = "Orange"

rearrange arr,start,stop
puts arr.inspect
#=> ["Red",["Cyan","Orange"],"Black"]

我需要在我的开始使用正则表达式并停止搜索,例如

开始=“/大喊/”

停止=“/ Ora /”

有没有一种简单的方法在Ruby中做到这一点?

解决方法

当然,方法 index可以接收一个块,这样你就可以做到
sidx = arr.index{|e| e =~ from }

您甚至可以查看Ruby的’case equality’运算符,并轻松地将字符串和正则表达式作为参数覆盖:

sidx = arr.index{|e| from === e} # watch out: this is not the same as 'e === from'

然后,如果你传递一个正则表达式,它将执行正则表达式匹配,如果你传递一个字符串,它将寻找精确的字符串.

猜你在找的Ruby相关文章