2011-08-21 20 views
0

大きなhtmlテキストファイルを解析し、特定のパターンに一致する部分文字列を抽出する必要があります。たとえば、次のようにパターンに一致する部分文字列を抽出するにはどうすればよいですか?

<span id='report-9429'>Report for May 2009</span> 
A lot of code and text. 
<span id='report-10522'>Report for Apr 2009</span> 
A lot of code and text. 
<span id='report-15212'>Report for Apr 2009</span> 

場合は9429、10522と15212は、私はサブストリングの配列として取得する必要があります部品です。ファイルにはこれらの多くが含まれており、それらをすべて取得する必要があります。

CocoaにはRegExp機能がありますか?そのようなRegExpの外観はどうですか?

答えて

3

NSRegularExpression(明らかにSnow Leoでは動作しません)またはRegexKitを使用することがあります。

あなたの正規表現は次のようになります。

<span id='report-(\d+)'>Report for \w+ \d+</span> 

NSRegularExpressionために、コードは次のようになります。

NSString *pattern = @"<span id='report-(\d+)'>Report for \w+ \d+</span>"; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern 
                     options:0 
                     error:nil]; 
[regex enumerateMatchesInString:string 
         options:0 
          range:NSMakeRange(0, [string length]) 
        usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) { 
    NSString *reportId = [string substringWithRange:[result rangeAtIndex:1]]; 
    // Do something with reportId 
}]; 
関連する問題