Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск в HTML 
:(
    Опции темы
Vit
Дата 10.6.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Как сделать текстовый поиск в HTML файле? 

Другими словами если в тексте написано:

<b>S</b>earc<i>h</i>

То слово "Search"  должно находиться.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
iddqd
Дата 10.6.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: 2
Всего: 2



Регулярные выражения. Ничего лучше еще не придумали.
Хотя тут наверно проще будет браузером открыть страницу и искать в уже пропарсеной.


--------------------
PM MAIL   Вверх
stab
Дата 10.6.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



в одном из проектов эту проблему решил так: считать в строку, удалить из строки всё что заключено между парами угловых скобок, т.е. после первой итерации цикла удаления получим "S</b>earc<i>h</i>", ну а после уже собственно поиск. это при условии что поиск в значениях атрибутов не нужен.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Exception
Дата 10.6.2007, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



А тебе нужно только количество вхождений посчитать или ещё какие данные?

Добавлено через 13 минут и 32 секунды
Код
public string Decode (string input)
{
    bool skip = false;
    StringBuilder sb = new StringBuilder (input.Length);
    foreach (char c in input)
    {
        if ((c == '<') || (c == '>')) skip = !skip;
        if (!skip) sb.Append (c);
    }
    return sb.ToString ();
}

С возвращённой строкой делай что хочешь smile .
PM   Вверх
tol05
Дата 10.6.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



Да нет, ну зачем все эти циклы?  Регулярные выражения действительно лучше ИМХО.
Код

string s = "<div>S</div>earc<i>h</i>";
Regex r = new Regex(@"<[^>]+>|</[^>]+>");
string[] str = r.Split(s);
StringBuilder sb = new StringBuilder();
foreach (string s1 in str)
{
  sb.Append(s1);
}

iddqd, рулит smile


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Exception
Дата 10.6.2007, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Оба способа хороши.
PM   Вверх
Vit
Дата 11.6.2007, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Критична скорость...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
v2v
Дата 16.6.2007, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



А сам  подумай как можно быстрее сделать? Помоему никак.
Хотя код Exceptionа будет работать немного быстрее.


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1139 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.