0

我正在尝试读取文本文件,将内容与正则表达式匹配,然后将匹配项写入另一个文件。我有代码:

names = File.read('myfile.txt')
open('myfile1.txt', 'a') { |f|
  f.puts names[/" name="(\w+)" title="First/]
}

我得到" name="firstname" title="First了,但我只需要它来写firstname。如何捕获此内容?

4

2 回答 2

1

您应该能够使用该方法从正则表达式(括号内的部分)中选择第一个捕获组。MatchData#[]但首先,您需要一个 MatchData 实例来表示您可以通过更改代码以调用.matchRegExp 本身来获得的匹配项。例如:

names = File.read('myfile.txt')
open('myfile1.txt', 'a') { |f|
  if match = /" name="(\w+)" title="First/.match(names)
    f.puts match[1]
  end
}
于 2013-04-21T16:42:37.480 回答
1

改变

names[/" name="(\w+)" title="First/]

names[/" name="(\w+)" title="First/, 1]
于 2013-04-21T17:12:57.997 回答