0

给定网页的 URL,我需要获取特定类的打开<div>和关闭之间的 HTML。</div>

我认为如果我可以将页面的整个 html 代码作为字符串返回,我可以使用 RegEx 在特定<div>类之间的 HTML 之间提取并将其作为字符串返回。

我们如何使用 Objective-C 和 RegExes 来实现这一点?

4

2 回答 2

1

对于解析部分,我有 3 个字给你:

不要尝试

阅读Parsing HTML the Cthulhu Wya(由 Jeff 本人撰写)并查看这个著名的 SO 答案。对于库,使用HTML::Sanitizer

另一方面,大多数程序在解析时既不需要也不应该预测整个 HTML 领域。事实上,设计一个这样的程序很可能是一个完全错误的方法,如果它将一个程序从几行脚本更改为一个防弹的商业级程序,这需要更多数量级的时间来正确编码和支持。在创建程序化解决方案时,应始终考虑资源支出(哎呀,经常这样做,我也过于笼统了)。此外,硬边界不一定是面向 HTML 的限制。它们可以很简单,比如“使用这些网页集”、“使用这些网页中的数据”、“98% 的时间为 98% 的用户工作”,甚至“天哪,我们必须做到这一点”在接下来的一个小时内工作,尽你所能”。

因此,如果您要解析类似icanhazip的内容,则可以选择它。也许如果它很小,它可能会起作用。或者,如果您使用的是静态内容。那是你来选择的。祝你好运!

于 2012-10-23T15:07:00.310 回答
0

您可以检查字符串是否与正则表达式匹配NSPredicate

此代码将检查是否_test是电子邮件地址

-(BOOL)CheckInput:(NSString *)_text  
{  
    NSString *Regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";  
    NSPredicate *emailTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", Regex];   
    return [emailTest evaluateWithObject:_text];  
}  
于 2012-10-23T15:19:18.420 回答