2010-12-02 3 views
0

Давным-давно мне пришлось извлекать данные из строки, и я пошел с циклом while, который прошел через весь строковый символ путем извлечения битов данных, которые мне нужны. Это было не очень эффективно, но это сработало.Извлечение данных (строк) из строки большой строки

В моем последнем приложении я хотел бы попытаться сделать это так, как это сделал бы хороший инженер. Есть ли способы поиска строки для выражения? или подстрока может быть?

Например, из html в строке есть строка, которая будет содержать название команды.

<td width="25%"><span class="teamname">Blue Bombers</span></td> 

Есть вызов, я могу сделать, чтобы найти «teamname», а затем извлечь из teamname между> <.

Я мог бы поместить символ char, сохраняя последние 10 символов в строке до тех пор, пока строка не будет равна «teamname», а затем продолжайте движение до тех пор, пока я не удалю> сохранить все, что я получу, пока я снова не удалю <. но я догадываюсь, что это делает простой неэффективный способ.

Большое спасибо -кода

+2

Я бы правильно проанализировал DOM вместо регулярного выражения – willcodejavaforfood 2010-12-02 16:17:35

ответ

0

Вы можете получить диапазон «класса» строки с помощью NSRange, а затем сделать вашу логику ... он, вероятно, сократить поиск характер ..

Ваш код должен быть как следует,

if ([substring rangeOfString:@"class"].location != NSNotFound) { 
    // "class" was found 
else { 
    // "class" was not found 
} 
0

Если это только часть строки, вы заинтересованы в, а затем просто найти отправную точку, как «teamname» через -rangeOfString :. Если есть несколько случаев, выполните повторные вызовы с параметром -rageOfString: options: range :.

Если вам нужен более полный синтаксический анализ, однако ..

Если эта строка является актуальной XHTML, то вы можете быть в состоянии использовать один из различных парсеров XML, например TouchXML, а затем найдите, что вам нужно, с помощью поиска DOM. Однако, если (как кажется, вероятно) это не чистый XHTML, то это вряд ли поможет. В этом случае вы можете попробовать загрузить HTML-код в экранном UIWebView и использовать вызовы JavaScript для поиска определенных элементов.

Смежные вопросы