2015-01-14 8 views
0

NSRegularExpression을 사용하여 NSString에서 하위 문자열을 가져 오려고합니다. 나 문자열을 대체하기 위해 일치 또는 수를 싶지 않아, 나는 정규 표현식을 일치하는 문자열을 원하는정규 표현식으로 NSString의 하위 문자열 찾기

NSString *string = <a>www.apple.com</a> 
NSError *error; 
[NSRegularExpression regularExpressionWithPattern:@"(\b(https?|ftp|file)://)?[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]" options:NSRegularExpressionCaseInsensitive error:&error]; 
NSString *substring; 

내가 찾고 있습니다 : 난

substring = www.apple.com; 

가능한 한 적은 NSRange/NSMakeRange를 사용하려고합니다. 아무도 도와 줄 수 없니?

답변

0
NSRange *range = [string rangeOfString:@"(\b(https?|ftp|file)://)?[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]" options:NSRegularExpressionSearch]; 
if(range.location!=NSNotFound) { 
NSString *neededSubString = [String SubStringWithRange:range]; 
} 

이 코드에서는 먼저 정규 표현식과 일치하는 문자열의 범위를 가져옵니다. 그 범위에서 부분 문자열을 얻고 있습니다