using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?P<ip>((?:[0-9]{1,3}\.){3}[0-9]{1,3})).+(?P<request>(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH)).(?P<endpoint>(.+endpoint1\/health)|(.+endpoint1)|(.+)(\?)|(.+) ).+\"".(?P<status>([0-9]{3}))";
string input = @"INFO: 172.0.0.1:0 - ""POST /endpoint1/UNIQUE-ID?key=unique_value HTTP/1.1"" 200 OK
INFO: 172.0.0.2:0 - ""GET /endpoint/health HTTP/1.1"" 200 OK
172.0.0.1:0 - - [04/Mar/2022:10:52:10 -0500] ""GET /endpoint2/optimize HTTP/1.1"" 200 271
INFO: 172.0.0.3:0 :0 - ""GET /endpoint3?key=unique_value HTTP/1.1"" 200 OK";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx