У меня есть регулярное выражение, которое работает с RegExr, но не работает с NSRegularExpression в Objective-C. Проблема связана с символами «и», которая является часть строки, которую я хочу найти. Мое регулярное выражение:NSRegularExpression, похоже, не распознает символы «и» в выражении
(?<=\"Here\":\")(.*?)(?=\"})
С этим выражением, Xcode говорит «ожидается:», и с \ перед}, и Xcode также говорит, что он не признает}. Я использую все эти варианты для работы с RegExr.
Для строк, как это:
{"Something":"Something else", "Here" : "What I want is between these quotation marks"}
Я посмотрел в documentation, но я не нашел ничего об этих символах там.
Мой код:
NSRegularExpression *regEx = [NSRegularExpression regularExpressionWithPattern:@"(?<=\"Here\":\")(.*?)(?=\"})"options:NSRegularExpressionCaseInsensitive error:&error];
NSArray *matches = [regEx matchesInString:stringToSearch options:0 range:NSMakeRange(0, [stringToSearch length])];
[matches count] // Returns 0
Так, где моя ошибка? Может быть, все выражения ошибочны, и проблема RegExr?
Заранее спасибо.
Похоже, вы пытаетесь разобрать строковое представление хеш-таблицы или словаря. Вы уверены, что для этого нет лучшей библиотеки? – Monolo
Да, это похоже на JSON, поэтому можно использовать NSJSONSerialization. –
Да, это JSON. Спасибо вам обоим, я тоже проверю этот вариант, так как он, вероятно, более эффективен. ;) – Esso