我正在尝试读取文本文件,将内容与regexp匹配,然后将匹配写入另一个文件。我有代码:
names = File.read('myfile.txt')
open('myfile1.txt', 'a') { |f|
f.puts names[/" name="(\w+)" title="First/]
}
我得到" name="firstname" title="First
,但我只需要写firstname
。我该如何捕捉这些内容?
答案 0 :(得分:1)
您应该能够使用MatchData#[]
方法从正则表达式(括号内的部分)中选择第一个捕获组。但首先,您需要一个表示匹配的MatchData实例,您可以通过更改代码在RegExp本身上调用.match
来获得该匹配。例如:
names = File.read('myfile.txt')
open('myfile1.txt', 'a') { |f|
if match = /" name="(\w+)" title="First/.match(names)
f.puts match[1]
end
}
答案 1 :(得分:1)
更改
names[/" name="(\w+)" title="First/]
到
names[/" name="(\w+)" title="First/, 1]