Нужна помощь в ASP

RealFikus

Есть сайт, написаныый на asp. Попросили написать поиск. Искать нужно в файлах, так как пока базы нету. В результаты поиска понятно не нужно чтобы попадал какой-нибудь код или комментарии в файлах. Все html-кода удаляю с помощью следующей функции:
Function RemoveHTML( strText )
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "<[^>]*>"
RegEx.Global = True
strText = Replace(strText, "<br>", chr(10
text = RegEx.Replace(strText, "")
End Function

Однако при таком задании шаблона внутренность скриптов вида:

<script LANGUAGE=JavaScript>
...
document.write(...);
...
</script>

доступна для поиска.
Как изменить шаблон, чтобы внутренность скриптов тоже вырезать? Заранее спасибо за помощь.

geja_03

Ну в 2 захода удаляй - сначала скрипты, шаблон примерно такой: <script.*</script> . Потом все остальное
ЗЫ С регекспами в асп не очень знаком

RealFikus

Да я вот тоже с шаблонами не очень дружу. Твой шаболон не работает.

geja_03

либо на точку либо на слеш не так реагирует. попробуй <script[.]*</script>

RealFikus

Теперь код:
Function RemoveScript( strText )
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "<script[.]*</script>"
RegEx.Global = True
'strText = Replace(strText, "<br>", chr(10
text = RegEx.Replace(strText, "")
End Function

Function RemoveHTML( strText )
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "<[^>]*>"
RegEx.Global = True
strText = Replace(strText, "<br>", chr(10
text = RegEx.Replace(strText, "")
End Function

' В переменной text содержимое asp файла

RemoveScript(text)
RemoveHTML(text)

После этого внутренность скриптов в перемнной text остаються, а все теги включая <script> удаляются. Может еще как-то можно попробовать шаблон изменить?

geja_03

<script[\s\S]*</script>

RealFikus

Спасибо. Это работает.

RealFikus

Столкнулся с еще одной проблемой - остаються комментарии вида <>

pitrik2

а не проще готовый HTML парсер взять?
наверняка их полно в инете валяется
на вод они получают строчку с сурцом сайта
на выход выдают текст
тоесть что тебе и нада

RealFikus

Уже все написано, так что уже проще дописать.

geja_03

ну точно так же <>

pitrik2

вот не соглашусь, что все написано
одно тянется за другим и так далее

Dasar

соглашусь с на regex-ах парсер можно долго писать

RealFikus

А мне не надо парсер в чистом виде. Уже все сделано. Сначало убираем скрипты, потом комментарии и теги. вот вся задача. Нужно только вытянуть текст. Нет нужды выводить форматно. , спасибо за помощь.

pitrik2

когда попадется пример который твой парсер не обрабатывает тогда вспомнишь наши слова
Оставить комментарий
Имя или ник:
Комментарий: