import Foundation
let pattern = #"\/wtb_(.*?)[\s](.*)?"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
/wtb_114 Адамантитовая руда
/wtb_111 Алюминиевая руда
/wtb_122 Веревка
/wtb_102 Ветки
/wtb_106 Древесный уголь
/wtb_108 Железная руда
/wtb_133 Заготовка кузнеца
/wtb_145 Заготовка ремесленника
/wtb_118 Загуститель
/wtb_137 Зерно
/wtb_120 Кожа
/wtb_123 Кокс
/wtb_136 Комбикорм
/wtb_104 Кость животного
/wtb_121 Костяная пудра
/wtb_166 Лезвие кинжала демона
/wtb_165 Лезвие кинжала охотника
/wtb_139 Лезвие трезубца
/wtb_138 Лезвие экскалибура
/wtb_126 Металлический лист
/wtb_130 Металлическое волокно
/wtb_112 Мифриловая руда
/wtb_146 Мифриловый сплав
/wtb_101 Нитки
/wtb_167 Обломок кирки шахтеров
/wtb_169 Обломок костолома
/wtb_168 Обломок молота гномов
/wtb_131 Обработанная кожа
/wtb_124 Очищенная пудра
/wtb_109 Плотная ткань
/wtb_107 Порошок
/wtb_141 Пыль
/wtb_116 Растворитель
/wtb_164 Рецепт браслетов демона
/wtb_163 Рецепт ботинок демона
/wtb_152 Рецепт брони паладина
/wtb_174 Рецепт кинжала демона
/wtb_173 Рецепт кинжала охотника
/wtb_170 Рецепт кирки шахтеров
/wtb_172 Рецепт костолома
/wtb_161 Рецепт куртки демона
/wtb_171 Рецепт молота гномов
/wtb_155 Рецепт перчаток паладина
/wtb_154 Рецепт сапог паладина
/wtb_144 Рецепт трезубца
/wtb_162 Рецепт шапки демона
/wtb_153 Рецепт шлема паладина
/wtb_156 Рецепт щита паладина
/wtb_143 Рецепт экскалибура
/wtb_117 Рубин
/wtb_115 Сапфир
/wtb_135 Сено
/wtb_132 Серебряная заготовка
/wtb_110 Серебряная руда
/wtb_125 Серебряный сплав
/wtb_119 Сталь
/wtb_127 Стальная заготовка
/wtb_129 Стальная нить
/wtb_105 Уголь
/wtb_175 Упаковочный материал
/wtb_113 Филосовский камень
/wtb_159 Фрагмент ботинок демона
/wtb_160 Фрагмент браслетов демона
/wtb_140 Фрагмент брони паладина
/wtb_157 Фрагмент куртки демона
/wtb_150 Фрагмент перчаток паладина
/wtb_149 Фрагмент сапог паладина
/wtb_158 Фрагмент шапки демона
/wtb_148 Фрагмент шлема паладина
/wtb_151 Фрагмент щита паладина
/wtb_103 Шкура животного
/wtb_128 Шнурок
/wtb_179 Хомячки
/wtb_178 Мясо монстров
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
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