2012-11-11 3 views
0

나는 다음과 같은 URL이 있습니다NSRegularExpression 하나 이상의 숫자를 일치

https://api.instagram.com/v1/tags/picoftheday/media/recent?access_token=29088696%2Efd3325f%2E7e277194e17340788abc72583dfd48b3

다음과 같은 정규 표현식 :

NSRegularExpression * regexTags = [NSRegularExpression regularExpressionWithPattern:@"tags/\\[a-zA-Z0-9]+/media/recent" options:NSRegularExpressionCaseInsensitive error:&error]; 
    NSArray* tagMatch = [regexTags matchesInString:self.currentRequestURL_ 
               options:0 range:NSMakeRange(0, [self.currentRequestURL_ length])]; 

하지 않는 이유는 정규식이 일치?

답변

1

당신은 정규식 자체에 오류가

정규식 @"tags/\\[a-zA-Z0-9]+/media/recent" 일치 태그/\ picoftheday/미디어/최근

하지만 tags/[a-zA-Z0-9]+/media/recent태그/picoftheday/미디어 일치 할 필요/최근

문자열이 일치하는 경우 정규식을 테스트하는 데 도움이되는 온라인 테스터가 있습니다 http://regexpal.com/

+0

오, 미안 해요. 두 번째 백 슬래시를 렌더링하는 코드로 포맷해야합니다. :) –

1

표현식에서 이중 백 슬래시를 제거하십시오. 당신은이 :

@"tags/\\[a-zA-Z0-9]+/media/recent" 

이가 있어야하지 :

@"tags/[a-zA-Z0-9]+/media/recent" 

이중 백 슬래시는 여는 대괄호를 탈출 의미 단일 ​​백 슬래시로 변환됩니다. 즉, 표현식이 문자 그룹을 여는 대신 문자열에서 실제 열린 대괄호를 찾는 것입니다.

+0

9 초 내에 동일한 답변을 :-) 나는 내 것을 제거 할 것입니다 ... –

+0

나는 그것을 보았습니다. 너는 실제로 더 나은 설명을했다. 내 정보를 포함하도록 내 정보를 업데이트하겠습니다. – rmaddy