using System.Text.RegularExpressions;
public static void Main()
string ean = "735999119039119036";
string pattern = "^735999[0-9]{5}([0-9]{6})[0-9]$";
string output = Regex.Replace(Regex.Replace(ean, "^735999[0-9]{5}", ""), "[0-9]$", "");
Console.WriteLine(output);
string output2 = Regex.Replace(ean, pattern, m => m.Groups[1].Value);
Console.WriteLine(output2);
string pattern2 = "^735999[0-9]{5}(?=[0-9]{6})";
string output3 = Regex.Replace(ean, pattern2, "");
Console.WriteLine(output3);
string pattern3 = "(^735999[0-9]{5})";
string output4 = Regex.Replace(ean, pattern3, "");
Console.WriteLine(output3);
Console.WriteLine(ReplaceTwoSteps(ean, "^735999[0-9]{5}", "", "[0-9]$", ""));
Console.WriteLine(Replacer(ean, pattern, "\\1"));
private static string ReplaceTwoSteps(string input, string pattern1, string replace1, string pattern2, string replace2)
return Regex.Replace(Regex.Replace(input, pattern1, replace1), pattern2, replace2);
private static string Replacer(string input, string pattern, string replace)
return Regex.Replace(input, pattern, m => EvaluateMatch(m, replace));
private static string EvaluateMatch(Match m, string replace)
for (int i = 1; i < m.Groups.Count; i++)
replace = replace.Replace("\\" + i, g.Value);