The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Поиск фразы в строке, !*! z3f, 26-Апр-05, 17:26  [смотреть все]
Есть массив. В каждом элементе массива забиты строки переменной длины.
Выглядят так
      Тип компьютера                                    Advanced Configuration and Power Interface (ACPI) PC
      Операционная система                              Microsoft Windows 2000 Server

это лог евереста для определенного компьютера.
в этих строчках есть небольшая сложность - это различное количесво пробелов между первой фразой - и между второй. а вот количество пробелов от начала строки до первой части - постоянно...
нужно выкорчевать из них вторую часть.
даже ума не приложу как это сделать=(
может кто поможет?

  • Поиск фразы в строке, !*! rWizard, 22:19 , 26-Апр-05 (1)
    • Поиск фразы в строке, !*! mthawk, 02:09 , 27-Апр-05 (2)
      • Поиск фразы в строке, !*! z3f, 09:57 , 27-Апр-05 (3)
        >>может так?
        >>/\ {5}(\w+\ )+\ {3-60}(\w+\ )+
        >
        >или так
        >($shit,$good)=split(/\s{2,}/,$string);


        $shit - строка на входе
        $good - строка на выходе
        $string - не понял совсем что это...=(
        2, - то же не понял...

        Поясните плз чайнику!

        PS /\ {5}(\w+\ )+\ {3-60}(\w+\ )+ - здесь вообще не понятно.
        что к чему и зачем - облазил все инетовские справочники - ничего не нашел или просто не видел=(

        • Поиск фразы в строке, !*! z3f, 11:48 , 27-Апр-05 (4)
          >>>может так?
          >>>/\ {5}(\w+\ )+\ {3-60}(\w+\ )+
          >>
          >>или так
          >>($shit,$good)=split(/\s{2,}/,$string);
          >
          >
          >$shit - строка на входе
          >$good - строка на выходе
          >$string - не понял совсем что это...=(
          >2, - то же не понял...
          >
          >Поясните плз чайнику!
          >
          >PS /\ {5}(\w+\ )+\ {3-60}(\w+\ )+ - здесь вообще не понятно.
          >что к чему и зачем - облазил все инетовские справочники - ничего
          >не нашел или просто не видел=(

          Короче - не работает=(
          или у меня корявые ручки...
          помогите!

        • Поиск фразы в строке, !*! butcher, 11:59 , 27-Апр-05 (5)
          • Поиск фразы в строке, !*! z3f, 12:18 , 27-Апр-05 (6)
            Делаю так
            if ($stroka=~/Тип компьютера/) {($shit,$good)=split(/\s{2,}/,$stroka); print OUT $shit;}
            выдает пустоту - то есть пустую строку.

            а если так
            if ($stroka=~/Тип компьютера/) {($shit,$good)=split(/\s{2,}/,$stroka); print OUT $good;}
            выдает первую часть строки... то бишь выдает слова "Тип компьютера".

            я понимаю что ошибка в моем ДНК =) но всё же это - не работает и исправить это я не могу...

            • Поиск фразы в строке, !*! butcher, 12:33 , 27-Апр-05 (7)
              • Поиск фразы в строке, !*! PoizOn, 15:21 , 27-Апр-05 (8)
                • Поиск фразы в строке, !*! z3f, 16:52 , 27-Апр-05 (9)
                  Спасибо всем большое - всё работает!
                • Поиск фразы в строке, !*! MTHawk, 22:58 , 27-Апр-05 (10)
                  • Поиск фразы в строке, !*! madskull, 23:31 , 27-Апр-05 (11)
                    • Поиск фразы в строке, !*! z3f, 16:25 , 29-Апр-05 (12)
                      >А зачем создавать неиспользуемые переменные?
                      >
                      >Можно все свести примерно к следующему (если исходные строки в MASSIV'е):
                      >s/^.+?\s{2,}// for @MASSIV;
                      >
                      >(если я правильно понял задачу...)

                      Вы правильно поняли задачу - но это-то просто и понятно...
                      вот следующую задачу я никак не могу осилисть -хотя она и простая.
                      есть строка. в этой строке в произвольном месте есть тэг <td>. после тэга идет фраза она замыкается тэгом </a>. дальше еще идет фраза.
                      то етсь где то посредине строки есть фраза обрамленная тэгами <td> и </a>.
                      нужно получить эту фразу.
                      как это сделать?
                      найти номер позиции с которой есть эта фраза не проблема, номер позиции с котрой начинается тэг </a> то же не проблема - но как выдернуть фразу?

                      • Поиск фразы в строке, !*! z3f, 16:52 , 29-Апр-05 (13)
                        Задачу выставленную в предыдущем вопросе в принципе решил...
                        думаю что коряво=(
                        посмотрите этот с позволения сказать код

                        chop($f[$m+1],$f[$m+2],$f[$m+3]);

                        $loc1=index(($f[$m+1].$f[$m+2].$f[$m+3]), "<TD>");

                        $loc2=index (($f[$m+1].$f[$m+2].$f[$m+3]),"</A>");

                        $hh=substr(($f[$m+1].$f[$m+2].$f[$m+3]),$loc1,$loc2+4);

                        print "$hh \n";

                        Може ткто предложит более изящное решение?
                        а то я как то в регулярных выражениях - пас=(




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

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