using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?(DEFINE)
(?<recurs>
(?! {@|@} ) [^|] [^{@|\\]* ( \\.[^{@|\\]* )* | (?R)
)
)
{@
(?<If>\w+)-
(?<Condition>(%?\w++ (:\w+)*)* )
(?<True> [|] [^{@|]*+ (?&recurs)* )
(?<False> [|] (?&recurs)* )?
\s*@}";
string input = @"{@if-statement:sub%statement2|
<header id=""header_home"">
<div class=""in"">
<div class=""top"">
<h1 class=""logo""><a href=""/""><img src=""/img/logo-home.png"" alt=""></a></h1>
<div class=""login_outer_wrapper"">
<button id=""login""><div class=""a""><i class=""stripe""><i></i></i>Log in</div></button>
<div id=""login_wrapper"">
<form method=""post"" action=""{^login^}"" id=""form_login_global"">
<div class=""form_field no_description"">
<label>{!auth:login_email!}</label>
<div class=""input""><input type=""text"" name=""form[login]""></div>
</div>
<div class=""form_field no_description password"">
<label>{!auth:password!}</label>
<div class=""input""><input type=""password"" name=""form[password]""></div>
</div>
<div class=""remember"">
<input type=""checkbox"" name=""remember"" id=""remember_me_check"" checked>
<label for=""remember_me_check""><i class=""fa fa-check"" aria-hidden=""true""></i>Remember</label>
</div>
<div class=""submit_box"">
<button class=""btn btn_check"">Log in</button>
</div>
</form>
</div>
</div>
</div>
<div class=""content clr"">
<div class=""main_menu"">
<a href="">
<i class=""ico a""><i class=""fa fa-lightbulb-o"" aria-hidden=""true""></i></i>
<span>Idea</span>
<div> </div>
</a>
<a href="">
<i class=""ico b""><i class=""fa fa-user"" aria-hidden=""true""></i></i>
<span>FFa</span>
</a>
<a href="">
<i class=""ico c""><i class=""fa fa-briefcase"" aria-hidden=""true""></i></i>
<span>Buss</span>
</a>
</div>
<div class=""text_wrapper"">
<div>
<div class=""register_wrapper"">
<a id=""main_register"" class=""btn register"">Załóż konto</a>
<form method=""post"" action=""{^login^}"" id=""form_register_home"">
<div class=""form_field no_description"">
<label>{!auth:email!}</label>
<div class=""input""><input type=""text"" name=""form2[email]""></div>
</div>
<div class=""form_field no_description password"">
<label>{!auth:password!}</label>
<div class=""input tooltip""><input type=""password"" name=""form2[password]""><i class=""fa fa-info-circle tooltip_open"" aria-hidden=""true"" title=""{!auth:password_format!}""></i></div>
</div>
<div class=""form_field terms no_description"">
<div class=""input"">
<input type=""checkbox"" name=""form2[terms]"" id=""terms_check"">
<label for=""terms_check""><i class=""fa fa-check"" aria-hidden=""true""></i>Agree</label>
</div>
</div>
<div class=""form_field no_description"">
<div cl\|\|ass=""input captcha_wrapper"">
<div class=""g-recaptcha"" data-sitekey=""{%captcha_public_key%}""></div>
</div>
</div>
<div class=""submit_box"">
<button class=""btn btn_check"">{!auth:register_btn!}</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</header>|{@if-statement2|echo this|{@if-statement2|echo this|echo othe\|\|rwise@}@}
@}";
RegexOptions options = RegexOptions.IgnorePatternWhitespace;
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