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

ruby里grep问题

ruby里grep问题

幕布斯6054654 2019-05-14 09:08:31
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 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-05-15
?
Helenr

TA贡献1780条经验 获得超4个赞

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


 




查看完整回答
反对 回复 2019-05-15
  • 3 回答
  • 0 关注
  • 562 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号