2010-03-14 17 views
3

내 앱은 문자열 내에 URL이 포함되어 있거나 포함되지 않은 수많은 텍스트 문자열을 수신합니다. 문자열에서 URL을 추출하는 가장 좋은 방법은 무엇입니까? 고맙습니다.문자열 내에서 URL 추출

답변

3

The BSD-licensed AutoHyperlinks framework은 텍스트를 검색하여 URL을 검색하고 사용자에게 반환하거나 속성이 지정된 문자열의 링크로 표시하도록하는 클래스를 제공합니다.

아이폰 용으로 제작되지는 않았지만 항상 AppKit 의존적 코드를 없애기 위해 프리 프로세서 지시어를 추가 할 수 있습니다. 스캔 및 리턴 인터페이스는 일단 빌드하면 작동합니다. (테스트를 실행하십시오.)

Mike Abdullah wrote a patch for iPhone support. 시도해보십시오.

+0

감사합니다, 나는이 있지만, 생성 된 오류 및 경고의 숫자로 판단, 그것은 아이폰에이 작업 얻기 위해 상당한 양의 작업이 필요합니다 시도 - – RunLoop

+0

JK를 : 그것은 오해의 소지가있을 수 있습니다. 한 줄의 코드는 충분히 편집 할 수없는 경우 많은 오류를 생성 할 수 있지만 여전히 한 줄의 코드입니다. AutoHyperlinks의 AppKit 종속적 인 부분은 충분히 쉽게 분리 될 수 있다고 생각됩니다. –

+0

베드로 감사합니다. 나는 패치를 내일 시험해 볼 것이다. – RunLoop

8

Mac 응용 프로그램에서 작업하는 경우 Mac OS X 10.6은 맞춤법 검사기로 URL을 검색 할 수있는 새로운 API를 제공합니다. 당신은 이렇게 할 수 있습니다.

NSString *s = @"http://example.com" 
NSInteger wordCount = 0; 
NSOrthography *orthography = nil; 
NSArray *checkResults = [[NSSpellChecker sharedSpellChecker] checkString:s range:NSMakeRange(0, [s length]) types:NSTextCheckingTypeLink options:nil inSpellDocumentWithTag:0 orthography:&orthography wordCount:&wordCount]; 
for (NSTextCheckingResult *result in checkResults) { 
    NSRange range = result.range; 
    NSURL *URL = result.URL; 
} 
+0

가능한 경우 전용 프레임 워크를 가져 오는 것이 좋습니다. 보통 링크를 검색 할 때 정규 표현의 단어 수에 대해 실제로 신경 쓰지 않으므로 효율성을 위해'NULL' 포인터를 전달하십시오. –

+0

또한 오픈 소스 KSFileUtilities 코드에서 구현했습니다. https://github.com/karelia/KSFileUtilities/commit/4ef561512fab9a169fcf63129037bfddfda6257b –