using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<!SQ\d{0}|\d|\d{2})(51\d{14}|52\d{14}|53\d{14}|54\d{14}|55\d{14}|36\d{12}|34\d{13}|37\d{13}|4\d{15}|4\d{12}|\d{4}(-|\s)\d{4}(-|\s)\d{4}(-|\s)\d{4}|\d{3}(-|\s)\d{3}(-|\s)\d{3}(-|\s)\d{3}(-|\s)\d{3}|\d{4}(-|\s)\d{6}(-\s)\d{5}|6\d{15})";
string input = @"<Payment>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""41111111111111114222222222222""/>
</Payment>
<PCard expiration=""2022-04"" number=""4005-5511-2233-4450""/>
<Payment>
Space
<PCard expiration=""2022-04"" number=""4005 5511 2233 4450""/>
Tab space
<PCard expiration=""2022-04"" number=""4005 551122334450""/>
<PCard expiration=""2022-04"" number=""4005 5511 2233 4450""/>
new line
<PCard expiration=""2022-04"" number=""4005400540054005""/>
<PCard expiration=""2022-04"" number=""4005 5511 2233 4450""/>
carriage return
<PCard expiration=""2022-04"" number=""4005 5511 2233 4450""/>
</Payment>
combination of
<Payment>
<PCard expiration=""2022-04"" number=""4005- 5511 -2233-4450""/>
</Payment>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""4255726800010""/>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""@#@@@$@4255726800010""/>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""SQ#4255726800010""/>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""45a$4255726800010""/>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""12SQ%4255726800010""/>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""4255726800010@121212""/>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""4255726800010#SQ""/>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""4255726800010$a54""/>
<PCard expiration=""2061-04-00"" name=""Grainger AB"" number=""4255726800010%SQ12""/>
<SupplierPartID>4222222222222</SupplierPartID>
<SupplierPartID> 4222222222222</SupplierPartID>
<SupplierPartID>SQ4222222222222</SupplierPartID>
<SupplierPartID>SQ134222222222222</SupplierPartID>
<SupplierPartAuxiliaryID>WWGSQ134256726800010</SupplierPartAuxiliaryID>
";
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