猿问

ruby里grep问题

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 result
f.close()
fn = IO.readlines("#{ora_perfstat_tmp}")
size = fn.grep(/#{key_word_ora}/).size + fn.grep(/#{key_word_sp2}/).size
if ( size > 0 ) then
status = 3
raise( MyError,"。。。。。。" )
end
其中result是sqlplus的执行结果,key_word_ora是“^ORA-”,key_word_sp2是“SP2-”

ibeautiful
浏览 556回答 3
3回答

慕容708150

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

米琪卡哇伊

需要用到正则表达式,如下:result = "abcd123"#result = "123abcd"key_word = "abcd"if result.match(/^#{key_word}/)puts "yes"elseputs "no"end   
随时随地看视频慕课网APP

相关分类

Ruby
我要回答