Нужна помощь с регулярным выражением для извлечения строк из данных в хеш [perl] - PullRequest
0 голосов
/ 24 декабря 2010

У меня есть кусок данных, из которого мне нужно извлечь некоторые строки и поместить их в хеш. Буду признателен за вашу помощь. Я пытался сделать это с помощью команды split, но это стало слишком сложно. Ниже приведен пример того, с чем я хотел бы помочь.

 junk here
        name="bobby"
        team="orange"
    junk here
        name="steve"
        team="blue"
    junk here    
        name="joe"
        team="blue" 
junk here

Необходимо отфильтровать нежелательные данные. data-> regex filter-> hash

Хеш, я хочу:% hash = ('bobby' => 'orange', 'steve' => 'blue', 'joe' => 'blue',);

1 Ответ

4 голосов
/ 24 декабря 2010

Ну, если предположить, что ваши значения никогда не содержат кавычек или какой-либо формы экранирования, и name= всегда является первым в строке (кроме начальных пробелов):

my %hash;

while ($string =~ /^\s*name="([^"]*)"\s*team="([^"]*)"/mg) {
  $hash{$1} = $2;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...