1

我有一个像这样工作的伪代码方法:

def my_method(file)
  while(line = file.gets)
    case line
      when /^TEXT (.*)/
        puts line + <the text captured in the parenthesis of the regex> 
      else
        .....
    end
  end
end

有没有办法做到这一点?

编辑:

示例字符串如下:

TEXT a sample text

我想要正则表达式捕获的“示例文本”。我知道这不是执行此操作的正确方法,但这只是一个演示,即“ shell 脚本中的 YYYY-MM-DD 格式日期”以弄清楚如何以您想要的任何格式获取日期。

昨天的日期可以找到:

date -d '1 day ago' +'%Y/%m/%d'

来自“如何使用 BASH Shell 脚本获取昨天的日期”。

/-or替换_,然后将它们传递给 Ruby 语句。

编辑:投票给另一个人。他们的答案实际上有代码。

4

1 回答 1

4

您正在寻找的是puts "line#{$1}". 伪全局变量$1, $2,$3等是指最后一个正则表达式匹配的捕获组。(并且$~指的是 MatchData 本身,如果您想使用它。)

于 2013-07-12T20:51:37.930 回答