为了账号安全,请及时绑定邮箱和手机立即绑定

ruby里grep问题

ruby里grep问题

ITMISS 2019-03-12 13:09:27
result.include?("#{key_word}")这个是在result变量里查找是否包含#{key_word}问题:result变量里是否包含以#{key_word}开头的该怎么写啊不好意思,没有说清楚,result是个sqlplus执行的结果,检索以(^ORA-)开头或者包含(SP2-).或者说是“如果sqlplus的执行结果put到一个a.log文件里,result的内容就是cat a.log”一楼的试了不行,因为不是单个字符串所以只试了二楼的数组那样的,好像也不行。。现在已经实现了,不过我用的是比较笨的方法:f = File.new( "#{ora_perfstat_tmp}" , "w" )f.puts resultf.close()fn = IO.readlines("#{ora_perfstat_tmp}")size = fn.grep(/#{key_word_ora}/).size + fn.grep(/#{key_word_sp2}/).sizeif ( size > 0 ) thenstatus = 3raise( MyError,"。。。。。。" )end其中result是sqlplus的执行结果,key_word_ora是“^ORA-”,key_word_sp2是“SP2-”
查看完整描述

3 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

通过判断result.index("#{key_word}")==0来达到效果。
result.index("#{key_word}")返回key_word在result中出现的位置。如果是0则说明在开头出现,如果没有则是nil

查看完整回答
反对 回复 2019-03-23
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

需要用到正则表达式,如下:
result = "abcd123"
#result = "123abcd"
key_word = "abcd"
if result.match(/^#{key_word}/)
puts "yes"
else
puts "no"
end


 


查看完整回答
反对 回复 2019-03-23
  • 3 回答
  • 0 关注
  • 901 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信