Заменить строку между вхождениями - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть строка, которую я хочу отобразить внутри uiwebview, которая может выглядеть следующим образом:

"blah blah blah [IMG]you.png[/IMG] blah blah [IMG]me.png[/IMG]"

Я хочу заменить его так:

"blah blah blah <img src=\"you.png\"> blah blah <img src=\"me.png\">"

Я уже могу получить строку между [IMG] ... [/ IMG], проблема в том, что он может получить только первый набор [IMG] ... [/ IMG], а остальная часть вхождения не может .

NSRange startRange = [finalQuestionString rangeOfString:@"[IMG]"];
if (startRange.location != NSNotFound) {
     NSRange targetRange;
     targetRange.location = startRange.location + startRange.length;
     targetRange.length = [finalQuestionString length] - targetRange.location;   
     NSRange endRange = [finalQuestionString rangeOfString:@"[/IMG]" options:0 
     range:targetRange];
     if (endRange.location != NSNotFound) {
         targetRange.length = endRange.location - targetRange.location;
         NSString *imageFile = [finalQuestionString 
         substringWithRange:targetRange];//the extracted filename
     }
}

так как я могу получить все вхождения [IMG] ... [/ IMG] и заменить его на

"<img src=\"file.png\">"

любая помощь будет оценена. Спасибо!

1 Ответ

5 голосов
/ 27 сентября 2011

Поскольку [IMG] всегда станет <img src=\", а [/IMG] всегда станет \">", почему бы не сделать что-то вроде этого:

NSString *originalString = @"blah blah blah [IMG]you.png[/IMG] blah blah [IMG]me.png[/IMG]";
NSString *tempString = [originalString stringByReplacingOccurrencesOfString:@"[IMG]" withString:@"<img src=\""];
NSString *finalString = [tempString stringByReplacingOccurrencesOfString:@"\"[/IMG]" withString:@"\'>'"];

Управление памятью оставлено в качестве упражнения для читателя:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...