The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Поиск и вывод фразы, !*! tolkoshto is army, 26-Ноя-13, 19:27  [смотреть все]
Всем привет. Ответа в интернете не нашёл, поэтому решил спросить у вас, надеюсь поможете  :)

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

    <table class='comm3 test'

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

    </div>


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

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

  • Поиск и вывод фразы, !*! михалыч, 20:43 , 26-Ноя-13 (1)
    > Всем привет. Ответа в интернете не нашёл, поэтому решил спросить у вас,
    > надеюсь поможете  :)
    > Нужно найти в 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;
    • Поиск и вывод фразы, !*! sozidatel, 21:31 , 26-Ноя-13 (2)
      Данным скриптом не получиться. Он просто отсеет в документе не нужные символы, так как строка в документе одна. Есть ещё варианты?

      • Поиск и вывод фразы, !*! михалыч, 05:01 , 27-Ноя-13 (4)
        > Данным скриптом не получиться.

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

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

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

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

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

        • Поиск и вывод фразы, !*! tolkoshto is army, 09:57 , 27-Ноя-13 (5)

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

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

          • Поиск и вывод фразы, !*! михалыч, 13:11 , 27-Ноя-13 (6)
            >> А это как понимать:
            >>> так как строка в документе одна
            >> в каком документе? какая строка?
            >> В изначальном файле 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;

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

    • Поиск и вывод фразы, !*! mowerbread, 23:11 , 26-Ноя-13 (3)
      >[оверквотинг удален]
      > /<\/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;

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




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

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