정규 표현식을 배우려고하는데이 표현식을 NSRegularExpression으로 올바르게 설정하는 방법을 이해할 수 없습니다. 문자열에있는 괄호의 내용을 가져와야합니다.괄호 내용에 대한 정규 표현식
그래서 : 벨몬트 (오 헤어 지점)
저를 줄 것이다 (숲 Pk의이 바인딩) :
정말 감사하겠습니다 '숲 Pk의가 결합 된' '오 헤어 지점'와에게 주석이 달린 예제.
감사합니다.
정규 표현식을 배우려고하는데이 표현식을 NSRegularExpression으로 올바르게 설정하는 방법을 이해할 수 없습니다. 문자열에있는 괄호의 내용을 가져와야합니다.괄호 내용에 대한 정규 표현식
그래서 : 벨몬트 (오 헤어 지점)
저를 줄 것이다 (숲 Pk의이 바인딩) :
정말 감사하겠습니다 '숲 Pk의가 결합 된' '오 헤어 지점'와에게 주석이 달린 예제.
감사합니다.
\(.*?\)
괄호 안에 모든 것을 제공합니다. 미안하지만 NSRegularExpression에서 어떻게하는지 전혀 모른다. 당신은 IOS 개발자가 따라 오거나 직접 우리를 위해 그것을 기다려야합니다.
\(#escaped opening bracket
. #match anything
* #match . 0 - unlimited times
? #make the * not greedy
\) #escaped closing bracket
@"\\(.*?\\)"
는 일을 할 것입니다.
주의 사항 : 그건 이 같은 지원 중첩 된 괄호가되지 않습니다
Hi duck (debug duck (now just a regular duck))
따라서는, 전체 솔루션이 될 것입니다 :
NSString *string = @"Hi duck (debug duck), let's go to shower!";
NSRange range = NSMakeRange(0, [string length]);
NSString *pattern = @"\\(.*?\\)";
NSError *error = nil;
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:string options:0 range:range];
NSLog(@"%@", [string substringWithRange:[match rangeAtIndex:0]]);
그것은 또한 당신을주지해야한다 O '들 토끼 지점? –
당신이 맞습니다. 내 질문이 업데이트되었습니다. – ChickensDontClap