2015-12-17 6 views
1

У меня есть NSString вот так.Цель c Регулярное выражение 3

<br /><b>Notice</b>: Undefined variable: success in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1225</b><br /><br /> 

<b>Warning</b>: pack(): Type H: illegal hex digit (in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /> 

<b>Warning</b>: pack(): Type H: illegal hex digit n in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /> 

<b>Warning</b>: pack(): Type H: illegal hex digit u in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /> 

<b>Warning</b>: pack(): Type H: illegal hex digit l in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /> 

<b>Warning</b>: pack(): Type H: illegal hex digit l in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /> 

<b>Warning</b>: pack(): Type H: illegal hex digit) in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /> 

<b>Notice</b>: Undefined variable: success in <b>/var/www/webservice/gcm/setMessage.php</b> on line 
    <b>1225</b><br />{"success":1,"success_message":"Edit listing success"} 

Как извлечь эту часть {"success":1,"success_message":"Edit listing success"}.

+3

Не эта строка исходит из полного ответа JSON от какого-либо веб-сервиса? – NSNoob

+1

Вырезать строку со стартовым символом «{» и конечным символом «}». БИНГО !!! Вы получите нужную строку, но это будет работать только в том случае, если ваш ответ в следующем выше формате. Также сделайте проверку с вышеуказанным комментарием. – nikhil84

+1

Могу ли я смиренно предположить, что исправление ошибок на вашем сервере, а затем анализ ответа, поскольку чистый JSON - это исправление, которое является более умным, лучше, проще и многими другими словами? :) – TwoStraws

ответ

2

До тех пор, пока это общий формат ваших строк, шаблон (\\{[^}]+\\}) должен сделать это. Вот пример кода, чтобы вы начали:

NSString *test = @"<br /><b>Notice</b>: Undefined variable: success in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1225</b><br /><br /><b>Warning</b>: pack(): Type H: illegal hex digit (in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /><b>Warning</b>: pack(): Type H: illegal hex digit n in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /><b>Warning</b>: pack(): Type H: illegal hex digit u in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /><b>Warning</b>: pack(): Type H: illegal hex digit l in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /><b>Warning</b>: pack(): Type H: illegal hex digit l in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /><b>Warning</b>: pack(): Type H: illegal hex digit) in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1434</b><br /><br /><b>Notice</b>: Undefined variable: success in <b>/var/www/webservice/gcm/setMessage.php</b> on line <b>1225</b><br />{\"success\":1,\"success_message\":\"Edit listing success\"}"; 

NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:@"(\\{[^}]+\\})" options:0 error:nil]; 
NSTextCheckingResult *result = [regex firstMatchInString:test options:0 range:NSMakeRange(0, test.length)]; 
NSString *match = [test substringWithRange:result.range]; 

NSLog(@"Matched %@", match); 

Вы должны, очевидно, обрабатывать ошибки более грациозно, чем просто игнорировать их.

 Смежные вопросы

  • Нет связанных вопросов^_^