I’m trying to do a simple regex to grab specific text out of a bunch of text files in a directory. The code I’m using is below:
input_dir = File.join('path/to/file/dir/', "*.txt")
Dir.glob(input_dir) do |file|
if /\.txt$/i.match file
File.open(file, "r") do |_file|
/==BEGIN==(.*)==END==/.match _file.read
puts $1
end
end
end
That works for exactly 1 of the files in the directory, but all other files return nil. Am I missing something here?
Hard to guess with so little data, but could it be that in most files (except one),
==BEGIN==and==END==are on different lines?Does
/==BEGIN==(.*)==END==/m.match _file.readchange anything? The/mmodifier allows the dot to also match newlines in Ruby.