我正在开发一个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