Автор Тема: поиск по шаблону  (Прочитано 2769 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
поиск по шаблону
« : 26 Марта 2005, 21:48:02 »
 
 $i
=0;
 foreach (@
all)
 {
  
$i++;  if (m/text1/g)
  {
   
$j++;
   if  (
m/text2/g) { print FF "Строка: $j\\n";};
  };
...


ALL - массив строк

Из массива АЛЛ выбираются строки, где есть ТЕКСТ1, затем увеличивается на единицу счетчик J. Если в строке есть ТЕКСТ2, то записать в файл данные...

Почему проверка на ТЕКСТ2 не работает?
В строке есть ТЕКСТ2, но программа этого не видит...
Космическая игрушка

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
поиск по шаблону
« Ответ #1 : 27 Марта 2005, 04:47:31 »

my @all = (\'text1text2\', \'text1text2\');

my $i=0;
my $j=0;

foreach ( @all ) {
          $i++;
          if ( m/text1/g ) {
               $j++;
               if ( m/text2/g ) {
                    print "Строка: $j\\n";
               }
          }
}


Все прекрасно работает, ищите проблему в данных Вашего массива.
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
поиск по шаблону
« Ответ #2 : 27 Марта 2005, 13:29:52 »
# perl -de0
DB<1> @all = qw(text2text1 text1text2);

DB<2> foreach ( @all ) { $i++; if ( m/text1/g ) { $j++; if ( m/text2/g ) { print "Строка: $j\\n"; } } }
Строка: 2
DB<3> foreach ( @all ) { $i++; if ( m/text1/ ) { $j++; if ( m/text2/ ) { print "Строка: $j\\n"; } } }
Строка: 3
Строка: 4
DB><4> ^D

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28