Почему мой оператор сопоставления Perl ничего не соответствует? - PullRequest
1 голос
/ 01 ноября 2009

Я новичок в Perl и играю на экране скребками и регулярными выражениями. Я пытаюсь извлечь название "title" следующего блока HTML:

... title="The Valley Downs Chicago"><img class="vimg120" ...

Мой простой Perl-код для этого:

@htmlBlocks = split ("margin-bottom:20px",$content);
foreach $item (@htmlBlocks)
{
if (/\stitle="([^"]*)"/six)
{
    print $1;
}
}

но ничего не печатается. в то время как я устраняю неполадки, я спрашиваю экспертов, видите ли вы что-то неправильное или потенциально проблемное. заранее большое спасибо за вашу помощь!

1 Ответ

9 голосов
/ 01 ноября 2009

По умолчанию // для поиска используется переменная $_. Если вы хотите найти другую переменную, укажите ее до =~. Вот пример:

@htmlBlocks = split ("margin-bottom:20px",$content);
foreach $item (@htmlBlocks) {
    if ($item =~ /\stitle="([^"]*)"/six) {
        print $1;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...