/
rezvich
/
Prik
Обзор
Документация
Войти
/
rezvich
/
Prik
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Infrastructure/Transform/DocNormalizer.cs
35 строк
1 KB
waweda299
Прик
08 июн 2026, 15:52
08 июн 2026, 15:52
9ddc25e
Код
Авторство
О чём код?
//prik/Infrastructure/Transform/DocNormalizer.cs using System.Text.RegularExpressions; namespace prik.Infrastructure.Transform { public interface IDocNormalizer { (string? Docs, string? Docn) Extract(string? raw); } public sealed class DocNormalizer : IDocNormalizer { private static readonly Regex DocPattern = new(@"^\s*([\w\- ]+?)\s*(?:№|N|No)\.?\s*(\w+)\s*$", RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase); public (string? Docs, string? Docn) Extract(string? raw) { if (string.IsNullOrWhiteSpace(raw)) { return (null, null); } var m = DocPattern.Match(raw); if (!m.Success) { return (raw.Trim(), null); // мягкий fallback: docs=как есть } var docs = m.Groups[1].Value.Trim(); var docn = m.Groups[2].Value.Trim(); return (docs.Length == 0 ? null : docs, docn.Length == 0 ? null : docn); } } }