使用正则表达式搜索html文件中的随机字符串

时间:2011-12-31 00:02:16

标签: regex perl

我正在尝试使用Perl搜索html文件,查找半随机字符串并将匹配存储在变量中或打印出来。

字符串是jpg图像的名称,并且始终遵循9位数字的模式,后跟6个小写字母,即

140005917smpxgj.jpg

但每次都是随机的。我相信Perl可以做到这一点,但我承认我有点困惑。

4 个答案:

答案 0 :(得分:3)

不太复杂。您可能需要注意扩展程序中的不同上限,例如JPG。如果这是一个问题,您可以在扩展名之前添加(?i)

您可能还希望阻止部分名称,例如:丢弃超过9位的匹配项。这是(?<!\d)部分:确保匹配前没有数字字符。

ETA:现在也提取多个匹配,感谢ikegami。

while (<>) {
    for (/(?<!\d)([0-9]{9}[a-z]{6}\.(?i)jpg)/g) {
        say;
        push @match, $_;
    }
}

答案 1 :(得分:2)

试试这个正则表达式:

/\b\d{9}[a-z]{6}\.jpg/

答案 2 :(得分:1)

解决方案正则表达式为\d{9}[a-z]{6}\.jpg

答案 3 :(得分:1)

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