The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Помогите разделить строку в перле, !*! alexeylomov, 07-Фев-05, 15:35  [смотреть все]
есть список файлов  <имя>.<середина>.<окончание>
допустим он хранится в @my_list
Нужно получить список имён @my_names тех файлов, у которых середина=test, то есть то, что идёт у них до первой точки.
Что-то типа:
#!/usr/bin/perl -w
.....
.....
for( my $i = 0; $i < scalar( @my_list ); $i++ ) {
    if( $my_list[$i] =~ /test/ ) {
      push @my_names, <?чего-то_там?>
    }
  }
.....
Подскажите, пожалуйста, что там вписать?
Или предложите другой способ.
  • Помогите разделить строку в перле, !*! sly, 16:09 , 07-Фев-05 (1)
    my @test_names;
    foreach my $fh (@my_names){
        if ($fh =~ /^(\w+)\.test\.\w+$/){
            push @test_names,$1;
        }
    }

    >есть список файлов  <имя>.<середина>.<окончание>
    >допустим он хранится в @my_list
    >Нужно получить список имён @my_names тех файлов, у которых середина=test, то есть
    >то, что идёт у них до первой точки.
    >Что-то типа:
    >#!/usr/bin/perl -w
    >.....
    >.....
    >for( my $i = 0; $i < scalar( @my_list ); $i++ )
    >{
    >    if( $my_list[$i] =~ /test/ ) {
    >      push @my_names, <?чего-то_там?>
    >    }
    >  }
    >.....
    >Подскажите, пожалуйста, что там вписать?
    >Или предложите другой способ.


    • Помогите разделить строку в перле, !*! alexeylomov, 16:18 , 07-Фев-05 (2)
      >my @test_names;
      >foreach my $fh (@my_names){
      >    if ($fh =~ /^(\w+)\.test\.\w+$/){
      >        push @test_names,$1;
      >    }
      >}
      >
      >>есть список файлов  <имя>.<середина>.<окончание>
      >>допустим он хранится в @my_list
      >>Нужно получить список имён @my_names тех файлов, у которых середина=test, то есть
      >>то, что идёт у них до первой точки.
      >>Что-то типа:
      >>#!/usr/bin/perl -w
      >>.....
      >>.....
      >>for( my $i = 0; $i < scalar( @my_list ); $i++ )
      >>{
      >>    if( $my_list[$i] =~ /test/ ) {
      >>      push @my_names, <?чего-то_там?>
      >>    }
      >>  }
      >>.....
      >>Подскажите, пожалуйста, что там вписать?
      >>Или предложите другой способ.

      Спасибо.

      • Помогите разделить строку в перле, !*! PoizOn, 16:57 , 10-Фев-05 (3)
        НУ на примере объясню. файл например имеет имя good.test.txt, загоняем все файлы в массив через opendir, readdir, затем по массиву организуем поиск, например такой:

        $string="good.test.txt";# для примера в твоем случае это будет один из элементов массива

        $string=~/(\w+)\.(\w+)\.(\w+)/;

        print "Начало: $1\nСередина: $2\nКонец: $3\n";

        ну а эти данные вы можете уже засунуть куда угодно. Сверив середину со словом test.

        • Помогите разделить строку в перле, !*! alexeylomov, 17:26 , 10-Фев-05 (4)
          >НУ на примере объясню. файл например имеет имя good.test.txt, загоняем все файлы
          >в массив через opendir, readdir, затем по массиву организуем поиск, например
          >такой:
          >
          >$string="good.test.txt";# для примера в твоем случае это будет один из элементов массива
          >
          >
          >$string=~/(\w+)\.(\w+)\.(\w+)/;
          >
          >print "Начало: $1\nСередина: $2\nКонец: $3\n";
          >
          >ну а эти данные вы можете уже засунуть куда угодно. Сверив середину
          >со словом test.

          Понятное дело, просто никак не могу запомнить что означают эти символы в  /  . . .  /

          • Помогите разделить строку в перле, !*! PoizOn, 10:05 , 11-Фев-05 (5)
            >
            >Понятное дело, просто никак не могу запомнить что означают эти символы в
            > /  . . .  /

            Все просто, каждая из переменных $1 и до бесконечности (да да - в отличии от джавы, где возможно только от 1 до 9), автоматически получает в качестве значения часть строки, которая совпала с шаблоном заключенным в скобки.
            То есть, обратите внимание на мой пример, в нем 3 пары круглых скобок с шаблонами внутри, и переменных $1,$2,$3 - тоже три, если бы у нас было 4 паря скобок, то можно было бы использовать $4, и так даллее.





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

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