В текстовой строке, я пытаюсь извлечь все междуСтроительство Swift/ObjC регулярное выражение
[DATA FORMAT]
и /DATA FORMAT]
и
Columns Format:
и /DATA FORMAT]
к этой цели я использую регулярные выражения.
Хотя картина
"\\[DATA FORMAT\\](.*?)\\[/DATA FORMAT\\]"
работает, как и ожидалось, модель
"Columns Format(*.?)\\[/DATA FORMAT\\]"
выдает ошибку
Optional("The value “Columns Format(*.?)\\[/DATA FORMAT\\]” is invalid.")
The value “Columns Format(*.?)\[/DATA FORMAT\]” is invalid.
печатается в консоли (первая линия: локализованная ошибка)
Что я пропустил?
Код:
extension String
{
func match (pattern: String,
options: RegularExpression.Options = [.caseInsensitive, .dotMatchesLineSeparators]) -> [String]
{
do
{
let regex = try RegularExpression(pattern: pattern, options: options)
let regexAnsw = regex.matches(in: self, options: RegularExpression.MatchingOptions.withTransparentBounds, range: NSMakeRange(0, self.characters.count))
var retStrings = [String]()
for rs in regexAnsw
{
if let range = self.range(from: rs.range)
{
retStrings.append(self.substring(with: range))
}
else
{
print("match: cant' convert NSRange to range")
}
}
return retStrings
}
catch let error as NSError
{
print(error.localizedFailureReason)
print(error.localizedDescription)
return [String]()
}
}
}
OMG. Огромное спасибо. – Adeline