【swift2】urlを正規表現で解析する方法
はじめに
今回やりたかったのは、カスタムurlスキーマから起動されたときに指定されたurlによって特定の画面を開くとということ。
カスタムurlスキーマについてはあとでまとめます。今回はurlを正規表現で解析する部分をメモします
url解析用の関数
たぶん、ほとんどどこかのサイトにのっていたもののまんまなんですけど、、、
/** * 正規表現の共通処理 * @param 正規表現 * @param 解析したい文字列(url) * @result 結果 */ func regexUrlScheme(pattern: String, url: NSString) -> String? { var result: String? let regex = try? NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions()) if let _result = regex?.firstMatchInString(url as String, options: NSMatchingOptions(), range: NSMakeRange(0, url.length)) { for var i = 0; i < _result.numberOfRanges; ++i { result = url.substringWithRange(_result.rangeAtIndex(i)) } } return result }
呼び出し元
// uri検証 let uri = "/profile" if let _ = regexUrlScheme("/profile", uri) { _ // /profile } // パラメータ付きuri検証 let uri2 = "/profile/get/id/1/" if let _ = regexUrlScheme("/profile/get/id/([0-9]+)/", uri2) { _ // 1 }
正規表現ってただでさえ難しいのに、、、なんか色々難しいな、、、
以上、メモでした