これはあなたが望むことをします:
// regex string for emails (feel free to use a different one if you prefer)
NSString *regexString = @"([A-Za-z0-9_\\-\\.\\+])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]+)";
// experimental search string containing emails
NSString *searchString = @"asdjasjkdh 01/01/2012 asdhajksdh jkas 12/11/2012 hd sample@email.com asdha jksdh asjdhjak sdkajs test@gmail.com";
// track regex error
NSError *error = NULL;
// create regular expression
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexString options:0 error:&error];
// make sure there is no error
if (!error) {
// get all matches for regex
NSArray *matches = [regex matchesInString:searchString options:0 range:NSMakeRange(0, searchString.length)];
// loop through regex matches
for (NSTextCheckingResult *match in matches) {
// get the current text
NSString *matchText = [searchString substringWithRange:match.range];
NSLog(@"Extracted: %@", matchText);
}
}
上記のサンプル文字列を使用する:
asdjasjkdh2012年1月1日asdhajksdhjkas2012年11月12日hdsample@email.comasdha jksdh asjdhjak sdkajs test@gmail.com
出力は次のとおりです。
Extracted: sample@email.com
Extracted: test@gmail.com
コードを使用するには、searchString
検索する文字列に設定するだけです。NSLog()メソッドの代わりに、抽出された文字列を使用して何かを実行することをお勧めしますmatchText
。別の正規表現文字列を使用してメールを抽出regexString
してください。コード内のの値を置き換えるだけです。