Вопрос по objective-c, cocoa – Удалить символы и все после из строки

7

Я знаю о замене строк строки, но это работает, только если я точно знаю, что я хочу удалить.

Если у меня есть строка вроде следующего:

«Привет-там-это-это-тест и функция = привет-там»

Как удалить «& feature» и все, что будет после этого?

Любая помощь будет принята с благодарностью. Заранее спасибо

EDIT: Если абсолютно необходимо использовать REGEX, кто-нибудь может показать мне, как его использовать? Я знаю, что это 10,7 года, но я в порядке с этим. Еще лучше пример обрезки строк или использования NSScanner?

Снова всем спасибо.

EDIT: приведенное ниже решение является правильным, но привело к сбою для меня. Вот как я решил проблему:

<code>NSString *newString = [[oldString componentsSeparatedByString: @"&feature="] objectAtIndex:0];
</code>
Пока технически решение, это решение выполняет больше работы, чем нужно (а именно, создает массив). Вы должны вернуться к решению rdelmar и выяснить, что вы делали, что приводило к его падению, потому что вы, вероятно, все еще делаете это, и это вызовет другие проблемы. Peter Hosey
Почему бы тебе не опубликовать код, вызывающий сбой, чтобы мы могли взглянуть на него. rdelmar
Спасибо большое за вашу помощь, но поверьте мне, я внимательно посмотрел, и я только что создал строку, заполнил ее URL, преобразовал ее, обрезал ее, а затем с помощью этого решения происходит сбой. Я изо всех сил пытаюсь выяснить, почему он падает. Cristian
Как я уже сказал, тебе следует задать вопрос об этом. Вы не можете узнать что-нибудь полезное, бегая от каждой аварии, с которой вы столкнулись; когда вы столкнетесь с аварией, вы должны решить ее в лоб и учиться на том, что вы найдете. Peter Hosey

Ваш Ответ

2   ответа
1

Ух ты, TIL нет встроенного способа делать регулярные выражения в Objective-C Какао? согласно с Регулярные выражения в приложении Objective-C Cocoa

В любом случае, в этом вопросе упоминаются библиотеки.

нет встроенного способа? как 'stringByReplacingOccurferencesOfString (), но удалить все после? Cristian
Ну, вы можете написать код с помощью своей собственной функции, которая выполняет встроенный вызов, чтобы получить позицию соответствующей строки, а затем обрезать строку в этой точке. И если у вас достаточно простая среда, то это будет хорошо. Но как только ваш проект расширится, вы будете без проблем вставлять этот общий код ... почему бы не использовать надежную библиотеку? MarkHu
Это небольшой проект, и этот код будет включен в функцию цикла, и есть только один конкретный случай, от которого мне нужно избавиться: удалить «& feature» и все остальное, это не изменится. Если бы вы могли привести пример, как найти это, а затем обрезать, я был бы очень признателен! Cristian
Cocoa получил поддержку регулярных выражений в Lion. Какао Touch получил его в iOS 4. Peter Hosey
21

Это можно сделать без REGEX, как это:

NSString *string = @"hi-there-this-is-a-test&feature=hi-there";
    NSRange range = [string rangeOfString:@"&feature"];
    NSString *shortString = [string substringToIndex:range.location];
это приводит к сбою: / Cristian
Это не так, когда я запускаю его. Вы получаете сообщение об ошибке rdelmar
@ Кристиан: Тогда ты делаешь что-то еще не так. Это правильное решение. Вы должны опубликовать отдельный вопрос об аварии. Peter Hosey
ok спасибо, в любом случае, я действительно не понимаю, почему это происходит сбой, NSLog в моей строке показывает правильный вывод, но если я использую это решение, он вылетает .. странный Cristian
Также сбой, когда я положил этот метод Genevios

Похожие вопросы