在ios中使用正则表达式来删除href链接

时间:2012-07-26 08:17:11

标签: ios regex nsregularexpression

我需要一些帮助来构建正则表达式,以便从长字符串中删除带有搜索字词的href链接,然后将其解析为Web视图

href字符串的示例:<a href="/search/?search=Huntington">Huntington</a>

我想删除everthing但链接的纯文本(只是链接本身)但有麻烦

 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<a href=\"/search/?search=([A-Z][a-z])\"" options:NSRegularExpressionCaseInsensitive error:&error];

任何帮助都会受到欢迎

由于

2 个答案:

答案 0 :(得分:8)

我认为

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<a href=\"[^\"]+\">([^<]+)</a>" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@"$1"];

应该可以工作(我在TextMate中测试了正则表达式,但在XCode中没有测试过。)

答案 1 :(得分:2)

@ Helium3和@Carl解释就在上面,我想以corectly编写,我创建了这个函数,用于从NSString中删除一个href标签

-(NSString *)deleteAHref:(NSString *)originalString
{
    NSError *regexError = nil;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<a href=.*?>(.*?)</a>" options:NSRegularExpressionCaseInsensitive error:&regexError];
    NSString *modifiedString = [regex stringByReplacingMatchesInString:originalString options:0 range:NSMakeRange(0, [originalString length]) withTemplate:@"$1"];
    return modifiedString;
}