2012-04-13 3 views
0

NSRegularExpressionを使用してオーディオストリームからICECASTデータを切り出しようとしていますが、私のパターンには一般的な問題があると思います。ここでICECASTデータのNSRegularExpressionパターン

は私のコードです:私はこれを得ることを期待する

StreamTitle='Thomas Newman - Awkward Talk [The Horse Whisperer]';StreamUrl=''; 

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); 

は、入力されたと言う

Thomas Newman - Awkward Talk [The Horse Whisperer] 

を私はこれを取得:

Thomas Newman - Awkward Talk [The Horse Whisperer]';StreamUrl=' 

ここでテストした場合、正規表現は同じ結果を示しているので、これは、NSRegularExpression関連ではありません。 http://regex.larsolavtorvik.com/

誰が正しい正規表現に私を指すもらえますか?

+0

ところで:「ungreedy」オプションは、IOSのungreedyオプションを探しています...希望試合を強制... サンプルPHP: preg_match_all( '/ StreamTitle ='(。*) ';/iU'、 'StreamTitle =' MychaelとJeff Danna - Camelotの大ホール '; StreamUrl =' '; $ result); – decades

+0

OK、クイック検索と自己回答:小さな引用符でトリックを行います。 の代わりに@ "StreamTitle = '(。*)';" 私は使用する必要があります @ "StreamTitle = '(。*?)';" トピックが閉じています – decades

+0

あなたは少し疑問符を意味しますか? – borrrden

答えて

2

このような?でそれに従うことによって* quatifier怠惰作ってみましょう:

StreamTitle='(.*?)' 
関連する問題