using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^(?:[[:^print:][:cntrl:]\s]|GIF89.{0,20})*<\?(?:php)?\s*.{0,100}?\$match\)\)\{\$file\s*=\s*substr\(md5\(strtolower\(.{0,150}?(\@include\(\w+dir\w+\."")\/files\/\$file.{0,90}?\1\/shab.{0,230}?\$match\[1\]\.""\.html""\)\)\{echo\s*\@file_get_contents\(.{0,300}?maps\/stmap_""\.\$match\[1\]\.""\.xml""\);exit[[:punct:]\s]+$";
string input = @"<?php if(preg_match(""/([\w-]+-[a-z0-9]{4})/i"", $_SERVER[""REQUEST_URI""], $match)){$file = substr(md5(strtolower($match[1])), 0, 3);if(file_exists(__DIR__.""/files/$file"")){$blocks = array();@include(__DIR__.""/files/$file"");if(array_key_exists($match[1], $blocks)){@include(__DIR__.""/shab"");exit;}}}elseif(preg_match(""/stmap_([a-zA-Z0-9]+)\.html/i"", $_SERVER[""REQUEST_URI""], $match)){if(file_exists(__DIR__.""/maps/stmap_"".$match[1]."".html"")){echo @file_get_contents(__DIR__.""/maps/stmap_"".$match[1]."".html"");exit;}}elseif(preg_match(""/stmap_([a-zA-Z0-9]+)\.xml/i"", $_SERVER[""REQUEST_URI""], $match)){if(file_exists(__DIR__.""/maps/stmap_"".$match[1]."".xml"")){header(""Content-Type: application/xml"");echo @file_get_contents(__DIR__.""/maps/stmap_"".$match[1]."".xml"");exit;}}?>";
RegexOptions options = RegexOptions.Singleline | 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