The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблема с разбиением с помощью регулярных выражений"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема с разбиением с помощью регулярных выражений"
Сообщение от Psich emailИскать по авторуВ закладки on 31-Июл-03, 03:25  (MSK)
Пытаюсь разбить пременную:

foreach(@heads){
  if($html=~/(.*)$_(.*)/){
    
    ...

    }
  }

Перл просто перестает отзываться. Может ли это быть из-за того что $_ может встречаться несколько раз в разных местах $html? Можно ли с этим что-нибудь сделать?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Проблема с разбиением с помощью регулярных выражений"
Сообщение от ziben emailИскать по авторуВ закладки on 31-Июл-03, 11:43  (MSK)
#!/usr/bin/perl

@heads = ("sdfsdfsdf sd fsdf"," sfdfs sdf $_ ffgdfgd"," drryry $_ dfggf$_");

foreach(@heads){
  if($html=~/(.*)$_(.*)/){
      print $_;
  }
}

Если бы еще понять что нужно из этого добиться, но вот я твой пример сделал типа отдельной программкой - ничего не зависает, хотя ничего и не делает :)
Опиши - что оно _должно_ сделать, вместе что-нибудь придумаем. У тебя в переменной $_ в цикле находится целая строка, и что ты этим регулярным выражением хотел добиться?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Проблема с разбиением с помощью регулярных выражений"
Сообщение от Psich emailИскать по авторуВ закладки on 31-Июл-03, 13:06  (MSK)
Тяжело было сформулировать проблему. Задача состоит в том что дана длинная строка $html в ней по несколько раз встречаются каждый из элементов массива @heads. Необходимо разбить эту переменную так чтобы получилось два массива: в первом номера элементов массива @heads, в том порядке в котором они встречаются в переменной $html, во втором соответственно то, что шло между этими элементами. Приблизительно так.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Проблема с разбиением с помощью регулярных выражений"
Сообщение от konst emailИскать по авторуВ закладки on 31-Июл-03, 15:01  (MSK)
>Тяжело было сформулировать проблему. Задача состоит в том что дана длинная строка
>$html в ней по несколько раз встречаются каждый из элементов массива
>@heads. Необходимо разбить эту переменную так чтобы получилось два массива: в
>первом номера элементов массива @heads, в том порядке в котором они
>встречаются в переменной $html, во втором соответственно то, что шло между
>этими элементами. Приблизительно так.
Лучше показать пример того чего надо... (сложно представить ситуацию когда нужно в рез-те получить 2 указанных массива)

$html = 'aaaabbbbccccaaaadddeeeeddddffff';
@head = ('aaaa','dddd');

$r = join ('|',@head );
@rest = split( $r, #html); # в этом массиве соберется все чего нет в @head
while ($html =~ s/($r)//) { push(@main,$1) }
# в массиве @main соберутся все значения exist in $html and in @head  

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Проблема с разбиением с помощью регулярных выражений"
Сообщение от Psich emailИскать по авторуВ закладки on 02-Авг-03, 03:22  (MSK)
>>Тяжело было сформулировать проблему. Задача состоит в том что дана длинная строка
>>$html в ней по несколько раз встречаются каждый из элементов массива
>>@heads. Необходимо разбить эту переменную так чтобы получилось два массива: в
>>первом номера элементов массива @heads, в том порядке в котором они
>>встречаются в переменной $html, во втором соответственно то, что шло между
>>этими элементами. Приблизительно так.
>Лучше показать пример того чего надо... (сложно представить ситуацию когда нужно в
>рез-те получить 2 указанных массива)
>
>$html = 'aaaabbbbccccaaaadddeeeeddddffff';
>@head = ('aaaa','dddd');
>
>$r = join ('|',@head );
>@rest = split( $r, #html); # в этом массиве соберется все чего
>нет в @head
>while ($html =~ s/($r)//) { push(@main,$1) }
># в массиве @main соберутся все значения exist in $html and in
>@head


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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