【问题标题】:grep single line from multiline stringgrep 多行字符串中的单行
【发布时间】:2016-06-03 09:21:16
【问题描述】:

变量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

【问题讨论】:

  • 为什么要求使用grep?考虑在选择答案之前等待更长时间。不用着急。

标签: ruby grep


【解决方案1】:

我假设您对该值感兴趣,即721

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

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

【讨论】:

    【解决方案2】:
    string.lines.grep /pattern/
    

    string.each_line.grep /pattern/
    

    这可能更有效

    【讨论】:

      猜你喜欢
      • 2013-03-02
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      • 2014-12-21
      相关资源
      最近更新 更多