0

次のテキストを含む NSString があります。

You can now download "file.png" from "http://www.example.com/RANDOM.png"

その文字列の URL を使用して新しい NSString を作成するにはどうすればよいですか? 私が欲しい:

http://www.example.com/RANDOM.png

通常は最初のテキストを削除するだけですが、「file.png」は任意の長さのファイル名である可能性があり、削除できませんstringByReplacingOccurrencesOfString(それが何であるかがわからないため)。の最後まですべてを削除する方法のアイデアはありfrom "ますか? ご協力いただきありがとうございます。

4

2 に答える 2

3
NSRange range = [string rangeOfString:@"from \""];
NSString *URL = [string substringFromIndex:range.location + range.length];

エラーチェックは良い考えかもしれません (つまりrange.location != NSNotFound)。"また、文字列から最後を削除する必要がありますがsubstringToIndex:、文字列の長さと組み合わせてこれを実行できる方法があります (これはあなたに任せます。些細なことです)。

于 2012-07-06T15:55:52.077 に答える
1

最善の方法は、URL を認識する正規表現を使用することです。これは、@gruber からの URL 一致 RegEx を使用する例です。サーバーの実際の出力に応じて、少し調整する必要がある場合があります。

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\b(([\\w-]+://?|www[.])[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|/)))" options:NSRegularExpressionAnchorsMatchLines | NSRegularExpressionAllowCommentsAndWhitespace error:NULL];
NSRange range = [regex rangeOfFirstMatchInString:myString options:0 range:NSMakeRange(0, [myString length])];
NSString *URL = [myString substringWithRange:range];
于 2012-07-06T15:57:05.133 に答える