using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?:<\s*[\w-]+)*(?:\s([\w-]+)(?:\s*=\s*(?:(?:""((?:(?:\s|\S)*?[^\\])*?)"")|(?:'((?:(?:\s|\S)*?[^\\])*?)')))*)*?";
string input = @"<tag></tag>
< tag></ tag>
<tag></ tag>
<tag attribute></ tag >
<tag attribute1 attribute-2 attribute_3 /></tag>
<tag attribute=""value"" attribute= ""value""></ tag>
<tag attribute></tag>
< tag attribute attribute></tag>
< tag attribute=""value"" attribute=""val\""ue"" attribute='val\'ue'></tag>
<tag attribute></tag>
<tag attribute attribute></tag>
<tag attribute=""value"" attribute=""value""></tag>
< tag attribute=""value"" attribute=""value""></tag>
< tag attribute=""value"" attribute =""value"" attribute></tag>";
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