变量str保存一个多行字符串。我想从这上面找出一条线索。我想要grep字符串行kernel release 721并将它赋值给一个变量。有没有办法这样做?
irb(main):152:0> print str
*************************** Component ********************
c:\temp\agent\bin\CAR.exe: 721, patch 618, changelist 1633822, NTAMD64, opt
**********************************************************
--------------------
AGENT information
--------------------
kernel release 721
kernel make variant 721_REL
compiled on NT 6.1 7601 S x86 MS VC++ 14.00 for NTAMD64
compiled for 64 BIT
compilation mode Non-Unicode
compile time Mar 21 2016 21:07:50
patch number 12
latest change number 1659167
---------------------
supported environment
---------------------
operating system
Windows NT 5.0
Windows NT 5.1
Windows NT 5.2
Windows NT 6.0
Windows NT 6.1发布于 2016-06-03 09:26:58
string.lines.grep /pattern/或
string.each_line.grep /pattern/可能更有效率
发布于 2016-06-03 09:34:29
我假设您对这个值感兴趣,即721
kernel_release = str[/^kernel release\s+(\w+)$/, 1]
#=> "721"正则表达式匹配以kernel release开头的一行,后面跟着空格,以一个或多个字字符结尾。后者被捕获,第二个参数1引用该捕获组。
https://stackoverflow.com/questions/37610572
复制相似问题