我正在開發一個iPhone應用程序,它將使用NSRegularExpression來匹配來自字符串的模式以提取信息。這裏我試圖從電子郵件標題中提取mailTo鏈接。我已經成功地檢索了電子郵件標題字符串,現在我正在使用NSregularExpression應用搜索模式來從標題字符串中獲取電子郵件標識。無法使用NSRegularExpression提取信息
這是從哪兒我想提取的mailto的標題文字:
List-Unsubscribe: <mailto:[email protected]n>?subject=Unsubscribe>,<http://suksh.mailserv.in/suksh/?p=unsubscribe&mid=5451&uid=d8135921c2e2d40400ab02fa31eda529>>
這是搜索模式:
mailto:(?<address>[^\?^>]+)\??(?<params>[^>]+)?
我的代碼是這樣的
NSString *str= @"List-Unsubscribe: <mailto:[email protected]n>?subject=Unsubscribe>,<http://suksh.mailserv.in/suksh/?p=unsubscribe&mid=5451&uid=d8135921c2e2d40400ab02fa31eda529>>";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"mailto:(?<address>[^\?^>]+)\??(?<params>[^>]+)?"];
NSRange rangeOfFirstMatch = [regex rangeOfFirstMatchInString:str options:0 range:NSMakeRange(0, [str length])];
if (!NSEqualRanges(rangeOfFirstMatch, NSMakeRange(NSNotFound, 0))) {
NSString *substringForFirstMatch = [str substringWithRange:rangeOfFirstMatch];
NSLog(@"Extracted URL: %@",substringForFirstMatch);
}
但當我要在regularExpressionWithPattern:
的幫助下創建NSRegularExpression對象時,它返回nil o bject。
請幫助我什麼是問題。
預先感謝
不知道這是否是唯一的問題,但你還沒有逃過正則表達式中的反斜槓。 – omz
此外,沒有'regularExpressionWithPattern:'方法,它被稱爲'regularExpressionWithPattern:options:error:','error'參數應該會讓你知道你的表達有什麼問題。 – omz