私はSwift 3で簡単なRegexを実行しようとしていて、入力文字列から数字を抽出しています。Swift 3の抽出グループをRegex - NSブリッジングの混乱から
私はiOSに精通していないので、かなりの難題であることが証明されています。私は間違いなく、String
とNSString
の両方を同時に使用することに誤りがあると考えています。 「*** - [__ NSSingleObjectArrayI objectAtIndex:]:キャッチされない例外により 'NSRangeException'、理由にアプリを終了
:
は、次の例外で失敗
範囲外のインデックス1 [0 .. 0] 'let url = "a5b" let nsUrl = url as NSString let regex = try! NSRegularExpression(pattern: "a(\\d)b", options: []) let matches = regex.matches(in: url, options: [], range: NSRange(location: 0, length: url.characters.count)) somestuff(str: nsUrl.substring(with: matches[1].range))
数字を取得して取得する正しい方法は何ですか?
と同じですこれはあなたの例のデータでは重要ではないかもしれないが、 'url.characters.count'はurl.utf16.count''に変更する必要があります。 'NSRegularExpression'は、UTF-16ベースの場所と長さを使用します。 – OOPer