using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\[(msg|uri) ""(.*?)""\]";
string input = @"[Wed Feb 06 08:57:54 2019] [error] [client 123.123.123.123] ModSecurity: Access denied with code 403 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. [file ""/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_21_protocol_anomalies.conf""] [line ""47""] [id ""960015""] [rev ""1""] [msg ""Request Missing an Accept Header""] [severity ""NOTICE""] [ver ""OWASP_CRS/2.2.6""] [maturity ""9""] [accuracy ""9""] [tag ""OWASP_CRS/PROTOCOL_VIOLATION/MISSING_HEADER_ACCEPT""] [tag ""WASCTC/WASC-21""] [tag ""OWASP_TOP_10/A7""] [tag ""PCI/6.5.10""] [hostname ""something.net""] [uri ""/index.php/admin/""] [unique_id ""XFsEAsDzZbMAAGY5i5oAAAAA""]";
RegexOptions options = RegexOptions.Multiline | RegexOptions.IgnoreCase;
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