在目标c中解析来自HTML的电子邮件地址

时间:2012-06-20 03:50:27

标签: html objective-c parsing

这是我需要获取“user@website.com”的HTML。

<td valign="top">                                                       

<script type="text/javascript">
/* <![CDATA[ */
    PrintMail('user','website.com','user<at>website.com', '  '); 
/* ]]> */
</script><a href="JavaScript:SendMail('user','website.com');" onmouseover="self.status='user@website.com'; return true;" onmouseout="self.status=''; return true;">user@website.com</a><br>

这是我的代码:

NSArray *emailNodes = [bodyNode findChildTags:@"td"];


    for (HTMLNode *inputNode in emailNodes) {
        if ([inputNode findChildrenWithAttribute:@"valign" matchingName:@"top" allowPartial:NO]) {

                NSLog(@"%@", [[inputNode getAttributeNamed:@"href"] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]);

我正在使用的HTML解析器可以在这里找到:https://github.com/zootreeves/Objective-C-HMTL-Parser

我通过使用第一个孩子,下一个兄弟等来修改我的代码数百万次,但没有...

谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用Regex进行exp:

的电子邮件提取
NSString *regex = @"[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})";
for (NSString *match in [html componentsSeperatedByRegex: regex]{
    NSLog (@"%@", match); 
}