import Foundation
let pattern = #"test"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
(osz(ołomieni[ea]?))|(oszałamia(\b|jąc|jącej))\b
oszołomieni
oszołomienie
oszołomienia
oszałamia
oszałamiając (ich/go)
oszałamiającej
ogłusza
ogłuszając
ogłuszony
ogłuszenie
ogłuszania
Ogłuszone
ogłuszonym
ogłuszeniu
ogłuszają
4933 abilities <DefaultText>Ogłuszenie</DefaultText>
389 cyclopedia <DefaultText>Ogłuszenie</DefaultText>
5059 gui
!ogłuszający cios
!ogłuszająca fala
!ogłuszający wrzask
-----
wnikliwości
6357 abilities <DefaultText>Wnikliwość</DefaultText>
13695 abilities <DefaultText>Gdy jest z tobą Xopn'aua, otrzymujesz premię do wnikliwości i metafizyki. Cała twoja drużyna otrzymuje ponadto premię do woli.</DefaultText>
3265 cyclopedia <DefaultText>Wnikliwość</DefaultText>
11841 gui <DefaultText>Wnikliwość</DefaultText>
11846 <DefaultText>Czasami ciężko jest prowadzić rozmowy – rozmówcy bywają mało konkretni, przestraszeni, zajęci czymś innym lub po prostu kłamią. Wnikliwość zwiększa empatię i pomaga zrozumieć emocje oraz motywacje interlokutorów.</DefaultText>
9371 items <DefaultText>Gdy jest z tobą Xopn'aua, otrzymujesz premię do wnikliwości i metafizyki. Cała twoja drużyna otrzymuje ponadto premię do woli.</DefaultText>
----
intuicji
intuicję
intuicją
2919 abilities <DefaultText>Wytrwałość daje mnichowi zastrzyk intuicji, a wraz z nim premię do hartu, refleksu i woli za każdym razem, gdy niekorzystny efekt wygasa.</DefaultText>
664 gui <DefaultText>W trybie eksperta wyłączone zostają wszystkie funkcje pomocnicze, co czyni go odpowiednim dla graczy chcących polegać wyłącznie na własnych zdolnościach i intuicji. Opcję tę można wybrać wyłącznie podczas rozpoczynania nowej rozgrywki – aktywacja jej w trakcie trwającej gry jest niemożliwa, a dezaktywacja nieodwracalna.</DefaultText>
"""#
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