improved part 2, fixed regex select

This commit is contained in:
Rob Stoffelen 2023-12-01 09:25:47 +01:00
parent b2d8d4fc40
commit dac6f4a0c5

View File

@ -19,23 +19,10 @@
private int GetValueFromLine(string line)
{
MatchCollection matchCollection = Regex.Matches(line, @"(\d)");
List<Match> captures = matchCollection.ToList();
// replace the text with numbers
captures.AddRange(Regex.Matches(line, @"(one)"));
captures.AddRange(Regex.Matches(line, @"(two)"));
captures.AddRange(Regex.Matches(line, @"(three)"));
captures.AddRange(Regex.Matches(line, @"(four)"));
captures.AddRange(Regex.Matches(line, @"(five)"));
captures.AddRange(Regex.Matches(line, @"(six)"));
captures.AddRange(Regex.Matches(line, @"(seven)"));
captures.AddRange(Regex.Matches(line, @"(eight)"));
captures.AddRange(Regex.Matches(line, @"(nine)"));
captures = captures.OrderBy(x => x.Index).ToList();
// get all the items
List<Match> matches = Regex.Matches(line, @"(\d|one|two|three|four|five|six|seven|eight|nine)").OrderBy(x => x.Index).ToList();
// merge first and last index as one
string values = GetStringAsNumber(captures.First().Value) + GetStringAsNumber(captures.Last().Value);
string values = GetStringAsNumber(matches[0].Value) + GetStringAsNumber(matches[^1].Value);
// make an int
return int.Parse(values);
}