import Foundation
let pattern = #"(^.+?)(;.+)(Тренога---.+?)(\|)(.*;\n)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
Артикул;Атрибуты1;Атрибуты2;Атрибуты3
67676;Увеличение, крат---10|Тип призмы---roof|Материал оптики---BK-7|Покрытие линз---полное|Диаметр объектива (апертура), мм---25|Диаметр выходного зрачка, мм---2,5|Вынос выходного зрачка, мм---11|Относительная яркость---6,3|Реальный угол зрения, °---5,7|Поле зрения на удалении 1000 м, м---96|Минимальная дистанция фокусировки, м---5,5|Возможность диоптрийной коррекции, D---±3|Межзрачковое расстояние, мм---58–72|Способ фокусировки---центральная|Наглазники окуляров---резиновые|Размер---компактный|Назначение---детские, туристические|Чехол/сумка в комплекте---есть|Влагозащищенность---есть|Габариты, мм---110x78x50;Увеличение, крат---10|Диаметр объектива, мм---25|Производитель---Levenhuk|Страна---США|Гарантия---пожизненная|Вес в упаковке---0.34 кг|Размер упаковки---8.8x13.4x5.4 см.;
71996;Тип телескопа---рефрактор|Материал оптики---стекло|Покрытие оптики---полное многослойное|Диаметр объектива (апертура), мм---50|Фокусное расстояние, мм---360|Максимальное полезное увеличение, крат---100|Увеличение, крат---135|Светосила (относительное отверстие)---f/7,2|Окуляры в комплекте---H8 мм (45x), H20 мм (18x)|Посадочный диаметр окуляров, дюймов---1,25|Линза Барлоу в комплекте---3x|Искатель---оптический, 2х|Солнечный фильтр в комплекте---есть|Тренога---алюминиевая|Высота треноги, мм---400–1250|Тип управления телескопом---ручной|Тип монтировки---азимутальная|Дополнительно---диагональное зеркало и фирменный рюкзак в комплекте|Уровень пользователя---для начинающих, для детей|Предмет наблюдения---Солнце, планеты Солнечной системы, наземные объекты|Чехол/кейс/сумка в комплекте---есть|Расширенная комплектация---есть;Увеличение, крат---135|Диаметр объектива, мм---50|Производитель---Levenhuk|Страна---США|Гарантия---пожизненная|Вес в упаковке---2.29 кг|Размер упаковки---45.0x33.5x16.0 см.;
71996;Тип телескопа---рефрактор|Материал оптики---стекло|Покрытие оптики---полное многослойное|Диаметр объектива (апертура), мм---50|Фокусное расстояние, мм---360|Максимальное полезное увеличение, крат---100|Увеличение, крат---135|Светосила (относительное отверстие)---f/7,2|Окуляры в комплекте---H8 мм (45x), H20 мм (18x)|Посадочный диаметр окуляров, дюймов---1,25|Линза Барлоу в комплекте---3x|Искатель---оптический, 2х|Солнечный фильтр в комплекте---есть|Тренога---алюминиевая|Высота треноги, мм---400–1250|Тип управления телескопом---ручной|Тип монтировки---азимутальная|Дополнительно---диагональное зеркало и фирменный рюкзак в комплекте|Уровень пользователя---для начинающих, для детей|Предмет наблюдения---Солнце, планеты Солнечной системы, наземные объекты|Чехол/кейс/сумка в комплекте---есть|Расширенная комплектация---есть;Увеличение, крат---135|Диаметр объектива, мм---50|Производитель---Levenhuk|Страна---США|Гарантия---пожизненная|Вес в упаковке---2.29 кг|Размер упаковки---45.0x33.5x16.0 см.;
71996;Тип телескопа---рефрактор|Материал оптики---стекло|Покрытие оптики---полное многослойное|Диаметр объектива (апертура), мм---50|Фокусное расстояние, мм---360|Максимальное полезное увеличение, крат---100|Увеличение, крат---135|Светосила (относительное отверстие)---f/7,2|Окуляры в комплекте---H8 мм (45x), H20 мм (18x)|Посадочный диаметр окуляров, дюймов---1,25|Линза Барлоу в комплекте---3x|Искатель---оптический, 2х|Солнечный фильтр в комплекте---есть|Тренога---алюминиевая|Высота треноги, мм---400–1250|Тип управления телескопом---ручной|Тип монтировки---азимутальная|Дополнительно---диагональное зеркало и фирменный рюкзак в комплекте|Уровень пользователя---для начинающих, для детей|Предмет наблюдения---Солнце, планеты Солнечной системы, наземные объекты|Чехол/кейс/сумка в комплекте---есть|Расширенная комплектация---есть;Увеличение, крат---135|Диаметр объектива, мм---50|Производитель---Levenhuk|Страна---США|Гарантия---пожизненная|Вес в упаковке---2.29 кг|Размер упаковки---45.0x33.5x16.0 см.;
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"$1;$3\n"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression