using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"<!--(.*?)-->|<(?P<tag>[a-z0-9]+?)[^>]*>.*?<\/(?P=tag)>|<([a-z0-9]+).*?\/>|[\S ]+";
string input = @"<!--comment1
-->
<h1>header</h1>
<img src=""http://example.com/img.png"" title=""single tag""/>
<p>long text</p>
<img src=""http://example.com/img2.png""
title=""single tag""/>
<!-- comment1 -->
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
some text
<br class=""unclosed"">
";
RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Singleline;
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