re = /\S+\s+\S+\s+\S+\s+\S+\s+\S+\s+(?P<host>[\w\-\.]*)(?::\d+)?\s+(?P<ip>\S+)\s+\S+\s+\S+\s+\[(?P<date>.*?)\s+(?P<timezone>.*?)\]\s+"\S+\s+(?P<path>.*?)\s+\S+"\s+(?P<status>\S+)\s+(?P<length>\S+)\s+"(?P<referrer>.*?)"\s+"(?P<user_agent>.*?)"\s+(?P<generation_time_secs>[.\d]+)/
str = 'Feb 6 09:33:42 ngx-01 acother: 115.231.222.14 - - [06/Feb/2016:09:33:42 +0100] "GET http://zc.qq.com/cgi-bin/common/attr?id=260714&r=0.6027916056127199 HTTP/1.1" 401 590 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; 360SE)" 0.001'
# Print the match result
str.match(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