Поиск HTML-файла для случайной строки с помощью регулярных выражений - PullRequest
2 голосов
/ 31 декабря 2011

Я пытаюсь использовать Perl для поиска в html-файле, поиска полуслучайной строки и сохранения соответствия в переменной или распечатки.

Строка - это имя изображения jpgи всегда следует шаблону из 9 цифр, за которым следуют 6 букв нижнего регистра, т.е.

140005917smpxgj.jpg

Но это случайный случай каждый раз.Я уверен, что Perl может сделать это, но я признаю, что я немного запутался.

Ответы [ 4 ]

3 голосов
/ 31 декабря 2011

Не слишком сложно.Вы можете следить за изменением заглавных букв в расширении, например JPG.Если это вызывает озабоченность, вы можете добавить (?i) перед расширением.

Вы также можете запретить частичные имена, например, отменить совпадение, которое содержит более 9 цифр.Это часть (?<!\d): убедитесь, что никакие цифры не предшествуют совпадению.

ETA: теперь извлекает несколько совпадений, благодаря ikegami.

while (<>) {
    for (/(?<!\d)([0-9]{9}[a-z]{6}\.(?i)jpg)/g) {
        say;
        push @match, $_;
    }
}
2 голосов
/ 31 декабря 2011

Попробуйте это регулярное выражение:

/\b\d{9}[a-z]{6}\.jpg/
1 голос
/ 31 декабря 2011

perldoc perlre

use warnings;
use strict;

while (<DATA>) {
    if (/ ( [0-9]{9} [a-z]{6} [.] jpg ) /x) {
        print "$1\n";
    }
}

__DATA__
foo 140005917smpxgj.jpg bar
sdfads 777666999abcdef.jpg dfgffgh

Печать:

140005917smpxgj.jpg
777666999abcdef.jpg
1 голос
/ 31 декабря 2011

регулярное выражение для решения \d{9}[a-z]{6}\.jpg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...