From dac6f4a0c5267dd6635edebbf6cf0f6ab809c1e5 Mon Sep 17 00:00:00 2001 From: Rob Stoffelen Date: Fri, 1 Dec 2023 09:25:47 +0100 Subject: [PATCH] improved part 2, fixed regex select --- .../2023/Day 01/Day01Part2.cs | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/Advent Of Code Library/2023/Day 01/Day01Part2.cs b/Advent Of Code Library/2023/Day 01/Day01Part2.cs index 28fca5a..dba08f5 100644 --- a/Advent Of Code Library/2023/Day 01/Day01Part2.cs +++ b/Advent Of Code Library/2023/Day 01/Day01Part2.cs @@ -19,23 +19,10 @@ private int GetValueFromLine(string line) { - MatchCollection matchCollection = Regex.Matches(line, @"(\d)"); - List 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 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); }