using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"<\s*tag\b[^>]*?(?<=\s)attribute1\s*=\s*\""([^\""]*)\""[^>]*>";
string input = @"<tag attribute1=""'text123'"" />
<TAG attribute2=""'true'"" attribute1=""'text1'""/>
<tag attribute2=""'true'""/>
< tag
type=""apple"" title=""Golden apple""
ATTRIBUTE1=""value"" />
<!-- This one should not match -->
<tagger attribute1=""something"">
<!-- But this one yes -->
<tag data-id=""6735""
attribute1=""'some more text'""
required >
Whatever in here
</tag>
</tagger>
<!--
Should not match if ""attribute1"" is part of an other attribute name.
As attributes can contain a hyphen, we can't use \battribute1 because \b
will not consider the hyphen as part of a word. This is why we have to
use the positive lookbehind (?<=\s)
-->
<tag matching=""false"" data-attribute1="" />";
RegexOptions options = 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