Как расширить строку NSRange в Swift?

У меня есть диапазон строк в Swift, но я хочу расширить его на несколько символов, но не понимаю, как это сделать.

Вот мой код:

var fullMessage = "This\n is\n my example\n message.\n Thanks Leigh Smith\n and some more characters\n and lots more \n"
var startName = fullMessage.rangeOfString("Leigh")
var endMessage = fullMessage[advance(startName!.endIndex,0)...advance(fullMessage.endIndex,-1)]

var posRange = endMessage.rangeOfString("\n")
var pos = posRange?.startIndex
var xpos = advance(startName!.endIndex, 0)

fullMessage = fullMessage[advance(fullMessage.startIndex, 0)...advance(startName!.endIndex,advance(pos, 0))]

Моя проблема в том, что fullMessage может содержать случайные числа \n. Я хочу получить строку от начала строки fullMessage до \n после "Leigh", т.е. "Это\n является\n моим примером\n сообщением.\n Спасибо, Ли Смит\n".

Мои мысли состояли в том, чтобы найти следующий «\n», а затем расширить исходный диапазон. Надеюсь, есть простой способ сделать это с гораздо более красивым кодом.

Спасибо

ара


person iphaaw    schedule 15.07.2015    source источник
comment
Я бы выбрал Регулярное выражение и извлечение совпадений.   -  person zrzka    schedule 16.07.2015


Ответы (1)


person    schedule
comment
Спасибо. Я пока не утверждаю, что понимаю его, но, похоже, он работает хорошо и был гораздо более кратким, чем версия, которую я наконец придумал. Вы, очевидно, струнный ниндзя Swift! - person iphaaw; 27.07.2015