보는 것이 좋습니다
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:@"world" options:0 error:NULL];
// omitted error checking for the sake of simplicity
NSString *str = @"Hello world!";
[regex enumerateMatchesInString:str
options:0
range:NSMakeRange(0, str.length)
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)
{
NSLog(@"Match at [%d, %d]", result.range.location, result.range.length);
}];
[regex release];
또는 POSIX 방법 (이있을 수 있습니다 당신이 단지 하나의 일치를 원하기 때문에이 함수/메소드는 일치 범위를 직접 반환합니다.
#include <regex.h>
- (NSRange)matchString:(NSString *)string toRegex:(NSString *)regex
{
regex_t regex_obj;
regmatch_t match;
const char *regex_str;
const char *match_str;
int error;
regex_str = [regex UTF8String];
error = regcomp(®ex_obj, regex_str, REG_EXTENDED);
if (error)
{
return NSMakeRange(NSNotFound, 0);
}
match_str = [string UTF8String];
error = regexec(®ex_obj, match_str, 1, &match, 0);
if (error)
{
return NSMakeRange(NSNotFound, 0);
}
regfree(®ex_obj);
return NSMakeRange(match.rm_so, match.rm_eo - match.rm_so);
}
코코아는 기본적으로 정규 표현식을 지원합니다 (심지어 rec iOS 버전) –
@ H2CO3 전혀 쓸모가 없습니다. NSString에 대한 정규식 확장과 같은 멋진 기능이있는 멋진 프레임 워크입니다. – wadesworld