2011-11-16 23 views
0

處理如果我有以下幾點:如何找到嘰嘰喳喳在的NSString

NSString *tweet = @"Shoutout to @somebody and @somebodyElse for your help on this one #shoutouts"; 

我怎麼會去尋找Twitter的手柄(如@somebody)的範圍內?

我想讓他們在我的Attributed String中是粗體,這是下一步。

獎勵積分如果你能幫我找到#hash標籤,但我認爲它是相同的算法。

回答

0

使用NSRegularExpression類,

http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

不是使用這個在線工具來構建正則表達式努力,

http://www.gskinner.com/RegExr/

我嘗試這樣做,好像你可以建立一個很好的,

enter image description here

樣品編號 - 未經測試

NSString *yourString = @"Shoutout to @somebody and @somebodyElse for your help on this one #shoutouts"; 
NSError *error = NULL; 
NSRegularExpression *regex = [NSRegularExpression   
    regularExpressionWithPattern:@"\@\S+|#\S+" 
    options:NSRegularExpressionCaseInsensitive 
    error:&error]; 
[regex enumerateMatchesInString:yourString options:0 range:NSMakeRange(0, [yourString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){ 
    // your code to handle matches here 
}]; 

關於在線工具測試!

enter image description here 祝你好運!

+0

感謝堆詳細的答案!我欠你一杯啤酒! – jennas

+0

哦,你也來自墨爾本!現在我的啤酒前景更好,記住我的貓頭鷹圖片,我們可能會在週五晚上在swanston的某處遇到彼此!而且我總是沒錢,所以這將是一個偉大的享受!乾杯! – doNotCheckMyBlog