using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"<\w+.*?([\w-]+=[""']*\s*(?:\w+\s*)*[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\s*(?:['""]?(?:\w+\s*)*['""]?)?[""']*).*?>";
string input = @"<br data-a1=""nope"" attr="" jepp@get.me "" data-a2=""nope"">
<br data-a1=""nope"" attr=' jepp@get.me ' data-a2=""nope"">
<br data-a1=""nope"" attr=jepp@get.me data-a2=""nope"">
<br data-a1=""nope"" attr="" jepp@get.me "" data-a2=""nope""/>
<br data-a1=""nope"" attr="" jepp@get.me "" data-a2=""nope"" />
<tag data-a1=""nope"" attr="" jepp@get.me "" data-a2=""nope"">text</tag>
<tag data-a1=""nope"" attr=' jepp@get.me ' data-a2=""nope"">text</tag>
<tag data-a1=""nope"" attr=jepp@get.me data-a2=""nope"">text</tag>
<tag data-a1=""nope"" attr="" additional text jepp@get.me 'additional text'"" data-a2=""nope"">text</tag>
<tag data-a1=""nope"" attr="" additional text jepp@get.me additional text"" data-a2=""nope"">text</tag>
<tag data-a1=""nope"" attr=' additional text jepp@get.me ""additional text""' data-a2=""nope"">text</tag>
<tag data-a1=""nope"" attr="" jepp@get.me jeppagain@get.me "" data-a2=""nope"">text</tag>
abc dont@get.me 123 <input value=""please@get.me"">xyz
abc dont@get.me 123 <tag1 att1=""val1"" email1=""please@get.me"">xyz
abc dont@get.me 123 <tag2 att1=""val1"" email2=""please@get.me"" att1=""val1"">xyz
<tag2 att1=""val1"" email3='please@get.me' att1=""val1"">xyz
<tag2 att1=""val1"" email4=please@get.me att1=""val1"">xyz
<tag2 att1=""val1"" email5="" please@get.me "" att1=""val1"">xyz
<tag2 att1=""val1"" email6=' please@get.me ' att1=""val1"">xyz
<tag data-yeah-also-valid-attr-name=""please@get.me"">xyz
<tag data-yeah-attr=""please@get.me"">
<tag data-yeah-attr='please@get.me'>
<tag data-yeah-attr=please@get.me>
<tag data-yeah-attr=""'please@get.me'"">
<tag data-yeah-attr='""please@get.me""'>";
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