![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
В кратце - задача которая передо мной стоит сводится к тому чтоб скачать страничку с сайта взять оттуда всё, что в теге <body> выкинуть от туда все скрипты и переформатировать в соответствии со своей таблицей стилей. Решил сделать через регулярные выражения а заодно и разобраться с ними. Т.к. <body> довольно сложный тег он может быть <body> а может быть и <BODY class="body" bottomMargin="0" leftMargin="0" topMargin="0" onload="javascript:Start_Up();" rightMargin="0"> решил начать с более простого тега <head>
1) Здесь приходится выкидывать символы перевода сторки (HTML_text.Replace(Chr(13), "").Replace(Chr(10), "")) иначе выражение не работает как можно от этого уйти? 2)Оказалось что выражения чуствительны к регистру поэтому приходится делать такую штуку (head|HEAD) как можно это написать более корректно(например <Head> - пойман не будет)? Ps. Пишу в этот раздел а не в ASP.NET потому что вопрос связан скорее с бейсиком а не с работой сервера и серверными примочками... |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
Имхо, для таких целей лучше использовать специализированные парсеры. Но тогда док должен быть валидным.. что бывает не всегда.
|
|||
|
||||
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
Какие парсеры? Где про них можно прочитать/скачать? 8 )
Я вот про них ничего не знаю и работаю с тем что есть - тоесть пишу парсер сам. Да и с регулярными выражовываниями хочется разобраться... |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
Ну, например парсер из System.Xml. Но он должен читать только xhtml.
|
|||
|
||||
| rapa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 2.6.2005 Репутация: нет Всего: нет |
Но какоы бы он (тэг <Body>) ни был сложным,мне кажется,что всё что тебе понадобится,находится внутри, т.е. между тэгами <Body> и </Body>.Значит,ты таки можешь построить регуларное выражение по этому принципу.
Начало: "^\<Body\>" Конец: "\<\/Body\>$" |
|||
|
||||
| Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 1 Всего: 93 |
JaguarSmith
Для начала вместо того, чтобы писать head|HEAD -- просто поставь опцию IgnoreCase
Я бы ещё посоветовал добавлять опцию Compiled -- тогда всё работать будет чуть быстрее. Добавлено @ 01:40
И опять же. Попробуй поставить опцию Singleline. Почитал бы MSDN -- там много полезного про регулярные выражения написано. -------------------- Да. Именно так. |
||||
|
|||||
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
Да я и читал - но там слишком много всего написано и не очень понятно если не знать с чего начать По этому пришлось на осчупь - мне главно понять как оно используется в принципе а потом можно уже и МСДН читать... Спасибо большое - очень ценная инфа... Я бы никогда не догадался про "RegexOptions.Multiline Or RegexOptions.IgnoreCase"... |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |