从多行字符串grep单行

Bis*_*Das 0 ruby grep

变量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
Run Code Online (Sandbox Code Playgroud)

Ste*_*fan 5

我假设你对价值感兴趣,即721:

kernel_release = str[/^kernel release\s+(\w+)$/, 1]
#=> "721"
Run Code Online (Sandbox Code Playgroud)

正则表达式匹配以开头的行kernel release,后跟空格并以一个或多个单词字符结尾.后者被捕获,第二个参数1指的是捕获组.