実現したいこと
こっちで用意した構造体にMatchオブジェクトを渡したいけど、Regex.Matchの型が分からないです。
前提
swift 5.7で追加されたRegexをextensionで拡張してこっちで用意した構造体にMatchオブジェクトを渡したいです。将来的にはPythonのような関数などをこっちで用意した構造体に実現するつもりです。誰かが作ってないかなど、調べてみましたがRegexではなく、NSRegularExpressionしかなかったので、自分で作ろうと思いました。
発生している問題・エラーメッセージ
Cannot access associated type 'RegexOutput' from 'RegexComponent'; use a concrete type or generic parameter base instead
該当のソースコード
swift
1public struct re { 2 public struct Match { 3 private let _result: Regex<Any>.Match 4 public let string: String 5 6 public init(_ result: Regex<Any>.Match, _ string: String) { 7 self._result = result 8 self.string = string 9 } 10 } 11} 12 13extension Regex { 14 func search(_ string: String, pos: Int = 0, endpos: Int? = nil) -> re.Match? { 15 let start = string.index(string.startIndex, offsetBy: pos > 0 ? pos : 0) 16 let end = string.index(string.startIndex, offsetBy: endpos ?? string.utf16.count) 17 if let match = try? self.firstMatch(in: string[start..<end]) { 18 return re.Match(match, string) 19 } 20 return nil 21 } 22}
試したこと
Regex<AnyRegexOutput>.MatchやRegex<Any>.Matchなどを試しましたが、エラーが出てしまいました。
補足情報(FW/ツールのバージョンなど)
バージョンは5.8です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/11/27 14:43