2011-08-21 6 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는 부분 문자열의 배열로 가져와야하는 부분입니다. 이 파일에는이 중 많은 파일이 포함되어 있으며 그 파일을 모두 가져와야합니다.

코코아에는 RegExp 기능이 있나요? 그런 RegExp는 어떻게 생겼습니까?

답변

3

NSRegularExpression (분명 스노우 레오에서는 작동하지 않지만) 또는 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 
}]; 
관련 문제