Я получаю NSString
, который использует запятые в качестве разделителей и обратную косую черту в качестве escape-символа. Я пытался разбить строку, используя componentsSeparatedByString
, но я не нашел способа указать escape-символ. Есть ли встроенный способ сделать это? NSScanner? CFStringTokenizer
Если нет, то лучше было бы разбить строку на запятые, а затем воссоединить токены, которые были ложно разделены (после проверки их на наличие (неэкранированного) escape-символа в конце) или циклически перебирая все символы, найти запятую, а затем оглянуться назад на один символ, чтобы увидеть, экранирована ли запятая или нет (а затем еще один символ, чтобы увидеть, экранирован ли экранирующий символ).
Теперь, когда я думаю об этом, мне нужно проверить, чтобы количество escape-символов перед разделителем было четным, потому что только тогда сам разделитель не экранируется.
Если у кого-то есть метод, который делает это, я был бы признателен, если бы я мог взглянуть на него.