The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Поиск и вывод фразы"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Языки программирования)
Изначальное сообщение [ Отслеживать ]

"Поиск и вывод фразы"  +/
Сообщение от tolkoshto is army on 26-Ноя-13, 19:27 
Всем привет. Ответа в интернете не нашёл, поэтому решил спросить у вас, надеюсь поможете  :)

Нужно найти в html файле найти фразу начинащиеся на

    <table class='comm3 test'

  и заканчивающимся на

    </div>


Затем в данном отрывке удалить все англ символы включая "<,/,>". т.е удалить теги и вывести только русский текст.

Реализовать скриптом реально?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Поиск и вывод фразы"  +/
Сообщение от михалыч (ok) on 26-Ноя-13, 20:43 
> Всем привет. Ответа в интернете не нашёл, поэтому решил спросить у вас,
> надеюсь поможете  :)
> Нужно найти в html файле найти фразу начинащиеся на
>     <table class='comm3 test'
>   и заканчивающимся на
>     </div>
> Затем в данном отрывке удалить все англ символы включая "<,/,>". т.е удалить
> теги и вывести только русский текст.
> Реализовать скриптом реально?


#!/usr/bin/perl


use strict;
use warnings;


my $file = "/path/to/file";
my @array;


open(FH, $file) or die "Can't read $file: $!";


while(<FH>) {
    push @array, $_ if /<table class='comm3 test'/ .. /<\/div>/;
}


close FH;


for (@array) {
    s/[0-9,a-z,A-Z,\/,<,>,=,\',\"]//g;
    print;
}


Вместо s/[0-9,a-z,A-Z,\/,<,>,=,\',\"]//g;
можно попробовать s/[^а-я,А-Я,-,\s]//g;
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Поиск и вывод фразы"  +/
Сообщение от sozidatel on 26-Ноя-13, 21:31 
Данным скриптом не получиться. Он просто отсеет в документе не нужные символы, так как строка в документе одна. Есть ещё варианты?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Поиск и вывод фразы"  +/
Сообщение от михалыч (ok) on 27-Ноя-13, 05:01 
> Данным скриптом не получиться.

вы проверяли? Я, да, у меня работает.

> Он просто отсеет в документе не нужные символы,

а что, разве нужно наоборот, добавить?
смотрим изначальный посыл
>> Затем в данном отрывке удалить все англ символы включая "<,/,>". т.е удалить теги и вывести только русский текст.

А это как понимать:
> так как строка в документе одна

в каком документе? какая строка?
В изначальном файле HTML? скрипте?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Поиск и вывод фразы"  +/
Сообщение от tolkoshto is army on 27-Ноя-13, 09:57 

> А это как понимать:
>> так как строка в документе одна
> в каком документе? какая строка?
> В изначальном файле HTML? скрипте?

Сейчас объясню. Данном html документе имеиться лишь одна длинная строка вида..
<html><head></head><body>test<div>(и куча-куча разного кода, вплоть до 14000 тысяч символов). Понимаете?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Поиск и вывод фразы"  +/
Сообщение от михалыч (ok) on 27-Ноя-13, 13:11 
>> А это как понимать:
>>> так как строка в документе одна
>> в каком документе? какая строка?
>> В изначальном файле HTML? скрипте?
> Сейчас объясню. Данном html документе имеиться лишь одна длинная строка вида..
> <html><head></head><body>test<div>(и куча-куча разного кода, вплоть до 14000 тысяч символов).
> Понимаете?

типа так
<html><head></head><body>Ненужный текст<table class='comm3 test'><div>Text<p>Нужный</p> текст <a>link</a><b>Жирный текст</b>test</div></table></body></html>

#!/usr/bin/perl

use strict;
use warnings;

my $file = "/path/to/file";

open(FH, $file) or die "Can't read $file: $!";

while ( <FH> ) {
    /<table class='comm3 test'(.*)<\/div>/;
    my $txt = $1;
    $txt =~ s/<.*?>//gi;
    $txt =~ s/[0-9,a-z,\/,<,>,=,\',\"]//gi;
    print $txt;
}

close FH;

получаем на выходе
Нужный текст Жирный текст

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

3. "Поиск и вывод фразы"  +/
Сообщение от mowerbread on 26-Ноя-13, 23:11 
>[оверквотинг удален]
> /<\/div>/;
> }
> close FH;
> for (@array) {
>     s/[0-9,a-z,A-Z,\/,<,>,=,\',\"]//g;
>     print;
> }
>
> Вместо s/[0-9,a-z,A-Z,\/,<,>,=,\',\"]//g;
> можно попробовать s/[^а-я,А-Я,-,\s]//g;

Можно ли добавить слова которые не будут исключаться из поиска? (внутри фразы на англ)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру