Удалить часть строки NSString - PullRequest
5 голосов
/ 12 декабря 2010

У меня есть NSString следующим образом:

<img alt="996453912" src="http://d2gg0uigdtw9zz.cloudfront.net/large/996453912.jpg" /><a href="http://www.dealcatcher.com/shop4tech-coupons">Shop4Tech Coupons</a>

Мне нужна только первая часть (до части <a href), и я не могу понять, как удалить вторую часть.

Я попробовал тонну, но она не сработала.

Ответы [ 3 ]

18 голосов
/ 12 декабря 2010

Используйте что-то вроде:

NSRange rangeOfSubstring = [string rangeOfString:@"<a href"];

if(rangeOfSubstring.location == NSNotFound)
{
     // error condition — the text '<a href' wasn't in 'string'
}

// return only that portion of 'string' up to where '<a href' was found
return [string substringToIndex:rangeOfSubstring.location];

Таким образом, два соответствующих метода: substringToIndex: и rangeOfString: .

3 голосов
/ 12 декабря 2010

В справочнике по классу NSString есть раздел о Нахождении символов и подстрок , в котором перечислены некоторые полезные методы.

И в Руководстве по программированию строк Существует раздел по Поиск, Сравнение и сортировка строк.

Я не стесняюсь указывать эти ссылки.Вы сказали, что не можете найти методы, поэтому вот пара ссылок, которые помогут вам узнать, где искать.Изучение того, как читать документацию, является частью изучения того, как использовать фреймворки Cocoa и Cocoa-Touch.

0 голосов
/ 31 мая 2013

Вы можете использовать нечто похожее на эту модифицированную версию того, что было опубликовано в качестве ответа на подобный вопрос здесь https://stackoverflow.com/a/4886998/283412. Это возьмет вашу HTML-строку и вычеркнет форматирование. Просто измените часть while, чтобы удалить регулярное выражение того, что вы хотите удалить:

-(void)myMethod
{
   NSString* htmlStr = @"<some>html</string>";
   NSString* strWithoutFormatting = [self stringByStrippingHTML:htmlStr];
}

-(NSString *)stringByStrippingHTML:(NSString*)str
{
  NSRange r;
  while ((r = [str rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
  {
     str = [str stringByReplacingCharactersInRange:r withString:@""];
  }
  return str;
}
...