我有这样的字符串:如何获取字符串的特定部分?
"This is test string http://www.google.com and it is working."
我想只有从上面的字符串的链接(http://www.google.com
)。我怎么才能得到它?
我有这样的字符串:如何获取字符串的特定部分?
"This is test string http://www.google.com and it is working."
我想只有从上面的字符串的链接(http://www.google.com
)。我怎么才能得到它?
这将工作就像一个魅力:
NSString *totalString = @"This is test string http://www.google.com and it is working.";
NSLog(@"%@", totalString);
NSRange urlStart = [totalString rangeOfString: @"http"];
NSRange urlEnd = [totalString rangeOfString: @".com"];
NSRange resultedMatch = NSMakeRange(urlStart.location, urlEnd.location - urlStart.location + urlEnd.length);
NSString *linkString = [totalString substringWithRange:resultedMatch];
NSLog (@"%@", linkString);
Thnx我frnd它工作完美:-) – Birju 2012-08-14 07:41:29
被感染!您的网址必须以“http”开头并以“.com”结尾,如果以“.net”或“.info”或其他形式结尾,请编辑NSRange urlEnd。 – 2012-08-14 07:45:16
我不知道如果我正确地理解你的问题,但你应该看看正则表达式 ...
它应该是这样的:
NSString *test = @"This is test string http://www.google.com and it is working.";
NSString *string = [test stringByAppendingString:@" "];
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"https?://[^ ]* "
options:0
error:&error];
NSArray *matches = [regex matchesInString:string
options:0
range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult *match in matches) {
NSRange matchRange = [match range];
NSString *url = [string substringWithRange:matchRange];
NSLog(@"Found URL: %@", url);
}
你可以找到了解使用NSRegularExpression进一步的信息:
有一个看看NSString类的文档 - 那里有一堆方法来查找某些子字符串格式的位置,在delimeters上拆分字符串,并提取子字符串等。
在上面的例子中,如果你想提取任何嵌入的URL字符串中,你可以先分割字符串起来使用:
NSArray *substrings = [myString componentsSeparatedByString:@" "];
然后将得到的阵列中,环路通过它,看看它有一个“HTTP”字符串:
for (int i=0;i<[substrings length];i++) {
NSString aStr = [substrings objectAtIndex:i];
if ([aStr rangeOfString:@"http"].location != NSNotFound) {
NSLog(@"I found a http url:%@", aStr);
}
}
之间有什么区别 'http://www.google.com' 和 'http://www.google.com' ?你已经发布了相同的字符串.... – 2012-08-14 07:14:49
和整个字符串在哪里? – 2012-08-14 07:19:23
“这是测试字符串http:www.google.com并且它正在工作”是一个完整的字符串 – Birju 2012-08-14 07:20:37