diff options
Diffstat (limited to 'RhSolutions.Parsers/DrinkingWaterHeatingFittings')
-rw-r--r-- | RhSolutions.Parsers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs b/RhSolutions.Parsers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs index 7dba12c..867e886 100644 --- a/RhSolutions.Parsers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs +++ b/RhSolutions.Parsers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs @@ -4,35 +4,36 @@ namespace RhSolutions.Parsers.Fittings; public abstract class DrinkingWaterHeatingFitting : IProductParser { - protected static readonly Regex _diameter = - new(@"(?<!^)[\b\D]?(?<Diameter>16|20|25|32|40|50|63|15|26)[\b\D]?"); - protected static readonly Regex _angle = - new(@"(?<!^)([\b\D])(?<Angle>45|90)([\b\D]|$)"); - protected static readonly Regex _thread = - new(@"(?<!^)([\b\D])(?<Thread>1\s+1/4|1\s+1/2|1/2|3/4|2|1)([\b\D]|$)"); + protected static readonly Regex _diameter = + new(@"(?<!^|\d)(?<Diameter>16|20|25|32|40|50|63|14|15|26)(?!\d)"); + protected static readonly Regex _angle = + new(@"(?<!^|\d)(?<Angle>45|90)(?!\d)"); + protected static readonly Regex _thread = + new(@"(?<!^|\d)(?<Thread>1\s+1/4|1\s+1/2|1/2|3/4|2|1)(?!\d)"); - protected virtual string _title { get; } = string.Empty; + protected virtual string _title { get; } = string.Empty; - public virtual bool TryParse(string input, out string output) - { - var match = _diameter.Match(input); - if (match.Success) - { - output = $"{_title} {match.Groups["Diameter"]}"; - return true; - } - else - { - output = string.Empty; - return false; - } - } - protected string NormalizeDiameter(string diameter) - { - return diameter switch - { - "26" => "25", - _ => diameter - }; - } + public virtual bool TryParse(string input, out string output) + { + var match = _diameter.Match(input); + if (match.Success) + { + output = $"{_title} {match.Groups["Diameter"]}"; + return true; + } + else + { + output = string.Empty; + return false; + } + } + protected string NormalizeDiameter(string diameter) + { + return diameter switch + { + "14" => "16", + "26" => "25", + _ => diameter + }; + } } |