import Foundation
let pattern = #"((?:[1234]\s?)?[a-zа-я]+)(\s?\d+(?::(?:\d+[—–-]\d+|\d+)(?:,\d+[—–-]\d+|,\d+)*(?:;\s?\d+(?::(?:\d+[—–-]\d+|\d+)(?:,\d+[—–-]\d+|,\d+)*|;))*)?)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let testString = #"""
За тази седмица прочетете
Римляни 5:12-21,13 1 Коринтяни 31:12-17; 1 Коринтяни 12:14-26; Ефесяни 6:11-17; 1 Коринтяни 15:12-18;1;
Адам и Исус
изход 1:1-2,3,4-0;1:1,2-3;3;
Неделя - 28 февруари
Въпреки че апостол Павел е известен със своето ясно изложение на евангелието, неговото обяснение на великата борба също е изключително ценно. В центъра на поученията му за благата вест са концентрирани следните основни идеи: ние сме „оправдани чрез вяра“ в Исус (Римляни 5:1), имаме пряк достъп до Бога и се „радваме поради надеждата“ (стих 2); а изпитанията вече не ни притесняват (стихове 3-5). Освен това ни дава обещанието, че „когато още бяхме грешници, Христос умря за нас“ (стих 8) и сега сме „спасени“ чрез живота и смъртта на Христос за нас. Освен това сме пощадени от Божия последен съд над греха (стихове 9, 10), а се радваме, че сме примирени с Него (стих 11).
Прочетете Римляни 5:12-21. Как тук ни е разкрита великата борба?
Матей 1:1; 2:3-6,17; 1chro 2:2 + rev 1:1; 2:3-6,17; +exod
"""#
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