【问题标题】:How do I write a regex to match and capture at the same time?如何编写正则表达式以同时匹配和捕获?
【发布时间】:2013-07-11 12:23:56
【问题描述】:

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

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

我想要正则表达式捕获“示例文本”。我知道这不是正确的方法,但这只是一个演示,即“YYYY-MM-DD format date in shell script”来弄清楚如何以你想要的任何格式获取日期。

可以找到昨天的日期:

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

来自“How To Get Yesterday’s Date using BASH Shell Scripting”。

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

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

【问题讨论】:

  • 给我们示例字符串...否则我们怎么理解?
  • 它只是一个字符串“TEXT”

标签: ruby


【解决方案1】:

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

【讨论】:

  • 非常感谢。这就是我需要的。
猜你喜欢
  • 2021-09-21
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多