您的位置:首页 > 移动开发 > IOS开发

iOS字符串搜索配对网址,及NSArray存储结构体方法

2015-07-24 10:25 489 查看

进行字符串搜索网址,进行配对,最好的方法还是需要使用的正则表达式

#pragma mark - 判断是否有网址
- (void)checkHasURL
{
static NSString *urlExpression = @"((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((:[0-9]+)?)((?:\\/[\\+~%\\/\\.\\w\\-]*)?\\??(?:[\\-\\+=&;%@\\.\\w]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)";
NSString *content = _content.text;
NSMutableArray *links = nil;
if ([content length])
{
links = [NSMutableArray array];
NSRegularExpression *urlRegex = [NSRegularExpression regularExpressionWithPattern:urlExpression options:NSRegularExpressionCaseInsensitive error:nil];
[urlRegex enumerateMatchesInString:content
options:0
range:NSMakeRange(0, [content length])
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
NSRange range = result.range;
[_content addLinkWithLinkData:[NSValue valueWithRange:range] linkColor:kAppDelegate.gloablTextColor underLineStyle:kCTUnderlineStyleNone range:range];
//转换为NSValue对象存入array
NSValue *value = [NSValue valueWithBytes:&range objCType:@encode(NSRange)];

[links addObject:value];//储存所有的数据

//使用方法,对象回转成结构体
//NSRange range;
//[value getValue:&range];
}];
}

}


//转换为NSValue对象存入array
NSMutableArray links = [NSMutableArray array];
NSValue *value = [NSValue valueWithBytes:&range objCType:@encode(NSRange)];
[links addObject:value];//储存所有的数据
//使用方法,对象回转成结构体
NSRange range;
[links[index] getValue:&range];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: