0
我試圖從一個音頻流使用NSRegularExpression分割ICECAST數據,但我認爲我有一個與我的模式的一般問題。NSRegularExpression模式爲ICECAST數據
這裏是我的代碼:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"StreamTitle='(.*)';"
options:NSRegularExpressionCaseInsensitive
error:nil];
NSMutableString *messageAsText = [NSMutableString stringWithUTF8String:[messageAsRawData bytes]];
NSTextCheckingResult *match = [regex firstMatchInString:messageAsText
options:0
range:NSMakeRange(0, [messageAsText length])];
NSString *message = [messageAsText substringWithRange:[match rangeAtIndex:1]];
NSLog(@"Input: '%@', Output: '%@'", messageAsText, message);
說輸入的是:
StreamTitle='Thomas Newman - Awkward Talk [The Horse Whisperer]';StreamUrl='';
我希望得到這個:
Thomas Newman - Awkward Talk [The Horse Whisperer]
,但我得到這個:
Thomas Newman - Awkward Talk [The Horse Whisperer]';StreamUrl='
http://regex.larsolavtorvik.com/
可能有人點我到正確的正則表達式:
這如果這裏測試不NSRegularExpression相關的,因爲正則表達式顯示了同樣的結果呢?
BTW:在「ungreedy」選項強制所需的匹配...尋找在iOS中ungreedy選項... 示例PHP: preg_match_all('/ StreamTitle ='(。*)';/iU','StreamTitle ='Mychael和Jeff Danna - Camelot的大廳'; StreamUrl ='';',$ result); – decades 2012-04-13 22:31:29
好的,快速找到和自己回答:一個小引號使竅門: 而不是 @「StreamTitle ='(。*)';」 我需要使用 @「StreamTitle ='(。*?)';」 話題關閉 – decades 2012-04-13 22:38:06
你的意思是一個小問號? – borrrden 2012-04-14 01:49:08