0

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に関連していません。

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

4

1 に答える 1

2

*次のようにして、修飾子を遅延させてみてください?

StreamTitle='(.*?)'
于 2012-04-13T22:43:30.700 に答える