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