7

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

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

我想删除除了链接的纯文本(只是链接本身)之外的所有内容,但有问题

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

非常欢迎任何帮助

谢谢

4

2 回答 2

9

我认为

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 中没有)。

于 2012-07-26T08:30:12.257 回答
3

@Helium3 和 @Carl 解释就在上面,我想正确地写,我创建了这个函数来从 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;
}
于 2014-01-05T18:33:01.660 回答