2013-07-12 2 views
1

문자열을 역방향으로 검색하기 위해 NSBackwardSearch에 대한 지식이 있습니다.역방향의 NSRegularExpression?

내 질문에 NSRegularExpression을 통해 동일한 역방향 검색을 수행 할 수 있습니까?

그렇다면 지식을 공유해주세요.

+0

당신이 뒤로 문자열을 마지막 경기를 찾거나 읽을 하시겠습니까을? –

+0

나의 목표는 마지막 시합을 찾는 것입니다. 그러나 긴 문자열 인 경우 모든 항목을 찾은 다음 결과를 [occurrence.length-1]만큼 얻는 것이 최적이 아닙니다. – Kirubachari

답변

1

NSRegularExpression을 사용하여 뒤로 검색한다는 개념이 없으므로 캡처 그룹을 사용하고 마지막 항목을 찾아야합니다. class reference에 아무데도 언급되어 있지 않습니다.

매우 큰 문자열의 후반 부분에 일치하는 것으로 판단되는 이유가 있다면 먼저 큰 문자열의 하위 문자열을 검색 할 수 있지만 개인적으로는이 방법으로 미리 코드를 최적화하지 않으려 고합니다.

+0

설명 주셔서 감사합니다. – Kirubachari

1

당신은 당신이 당신의 정규 표현식의 결과 배열에 사용하여 열거 되돌릴 수 : 검색 할 때

NSString *regExPattern = @"<strong>.*?</strong>"; 
NSError *error = nil; 
static NSRegularExpression *regex = nil; 
regex = [NSRegularExpression regularExpressionWithPattern:regExPattern 
                 options:NSRegularExpressionCaseInsensitive | NSRegularExpressionDotMatchesLineSeparators 
                 error:&error]; 

NSArray *matches = [regex matchesInString:HTMLString options:0 range:NSMakeRange(0, HTMLString.length)]; 

for (NSTextCheckingResult *result in [matches reverseObjectEnumerator] /*HERE'S THE MAGIC*/) 
{ 
    //Do something here 
} 
관련 문제