2013-02-15 117 views
1

我有一個NSString包含幾個電子郵件地址和一些其他隨機文本。我希望能夠提取電子郵件地址。例如,他們都有相同的域,例如@ business.com。最好的辦法是什麼?Objective-C從字符串獲取電子郵件地址

樣品字符串(HTML)

  <td colspan="2" bgcolor="#000000"> 
     <p align="center"><b><font color="#FFFFFF" size="2">title</font></b></p></td> 
    </tr> 

    <tr> 
     <td valign="top"> 

<font size="2"><b>lastname</b>, firstname A.,&nbsp;[email protected]</font><br> 

<font size="2"><b>lastname</b>, firstname A.,&nbsp;[email protected]</font><br> 

<font size="2"><b>lastname</b>, firstname,&nbsp;[email protected]</font><br> 

<font size="2"><b>lastname</b>, firstname,&nbsp;[email protected]</font><br> 

+0

是地址界定?基本上,我正在尋找一種模式。很可能,你可以使用'NSString'對象的'comonentsSeparatedByString:'方法。 – Jeremy 2013-02-15 22:45:05

+0

不,它們是列出名稱,位置,電子郵件等結果字符串的一部分,僅由換行符分隔 – Chase 2013-02-15 22:46:38

+0

提供示例結果。正如Alex在答案中所暗示的那樣,您可能會利用正則表達式。 – Jeremy 2013-02-15 22:48:56

回答

1

我把爲您創造一個例子的自由,因爲我很感興趣,我自己:

NSString *someHTML = @"<b>lastname</b>, firstname,&nbsp;[email protected]</font><b>lastname</b>, firstname,&nbsp;[email protected]</font><b>lastname</b>, firstname,&nbsp;[email protected]</font>"; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(\\w*@business.com)" options: NSRegularExpressionUseUnixLineSeparators error:nil]; 
NSArray *matches = [regex matchesInString:someHTML options:NSMatchingWithTransparentBounds range:NSMakeRange(0, someHTML.length)]; 
for (NSTextCheckingResult *result in matches) 
{ 
    NSString *email = [someHTML substringWithRange:[result range]]; 
    NSLog(email); 
} 
相關問題