1
文本字符串,我想大廈斯威夫特/ 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.
打印在控制檯(第一行:localizedFailureReason,第二行:localizedDescription)
我錯過了什麼?
代碼:
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