The OpenNET Project / Index page

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

parse, pазбоp стpоки на perl (perl example regex)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: perl, example, regex,  (найти похожие документы)
_ RU.UNIX (2:5077/15.22) _____________________________________________ RU.UNIX _ From : Igor Nikolaev 2:5030/266 20 Jul 99 20:20:08 Subj : parse, pазбоp стpоки на perl Referat : parser perl config ________________________________________________________________________________ Konstantin Breus <Konstantin_Breus@f68.n465.z2.fidonet.org> wrote: > А может кто-нибудь подскажет кpасивый способ (perl | awk | grep ) pазобpать > стpоки типа: > Name:field1:field2: \ > :field3:field4: \ > :field5: Вообще-то это в ru.perl, но если не напрягаться и не пытаться экономить на коде, то: #!/usr/bin/perl -w # подпрограмма чтения порезанных строк sub get_conf { return if ( not defined ( $_ = <> ) ); # уйти если файл кончился chop; # отрезаем '\n' s/\t/ /go; # заменить все табуляции на пробелы s/ *$//o; # удалить все пробелы в конце строки if ( /\\$/ ) { # если строка кончается на '\' s/ *\\//o; # удалить все пробелы до '\' и саму '\' my $s = $_; # запомнить в $s &get_conf; # рекурсия - берём след строку s/^ *://o; # удаляем в ней все пробелы и ':' от начала $_ = $s.$_; # объединяем в одну строку } } # основная программа :-) while ( &get_conf ) { print $_, "\n"; } Hа самом деде это всё делается в три (одну :) строки как: $_ = join ( '', <> ); регулярное_выражение; @_ = split ( /\n/, $_ ); Hо этот regexp так лень писать... > С уважением - Konstantin. -- Игорь Hиколаев --- ifmail v.2.12.os.sensi * Origin: Дешёвые разборки (2:5030/266@fidonet)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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