1 つの正規表現パターンを使用して文字列を解析しようとしています。
パターンは次のとおりです。
(\")(.+)(\")\s*(\{)
解析するテキストは次のとおりです。
"base" {
これらの 4 つのキャプチャ グループを見つけたい:
1. "
2. base
3. "
4. {
これらのグループをキャプチャしようとしている次のコードを使用しています
class func matchesInCapturingGroups(text: String, pattern: String) -> [String] {
var results = [String]()
let textRange = NSMakeRange(0, count(text))
var index = 0
if let matches = regexp(pattern)?.matchesInString(text, options: NSMatchingOptions.ReportCompletion, range: textRange) as? [NSTextCheckingResult] {
for match in matches {
// this match = <NSExtendedRegularExpressionCheckingResult: 0x7fac3b601fd0>{0, 8}{<NSRegularExpression: 0x7fac3b70b5b0> (")(.+)(")\s*(\{) 0x1}
results.append(self.substring(text, range: match.range))
}
}
return results
}
残念ながら、次の範囲のグループを 1 つしか見つけることができませ(0, 8)
ん"base" {
。そのため、4 つのグループではなく、文字列全体である 1 つのグループが検出されます。
を使用してそれらのグループを取得することさえ可能NSRegularExpression
ですか?