re = /((?:\d{1,3}\.){3}\d{1,3}) (\w+|-) (\w+|-) \[(.*?)\] \"(\w+) (.*?) (HTTP|HTTPS)\/([0-9].[0-9])\" ([0-9]+) ([0-9]+) \"(\w+|-)\" \"(.*?)\"/m
str = '127.0.0.1 - Username [27/Feb/2019:11:52:23 +0100] "PROPFIND /path/to/awesome/stuff/ HTTP/1.1" 207 9228 "-" "Mozilla/5.0 (Windows)"'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html