Perl正则表达式捕获多个实例

时间:2015-09-03 02:58:22

标签: regex perl

$ string =" BLAH1234 xyz BALH3214 xxyyzz BALH3452"

我希望连续捕获4个大写字母的所有实例,后跟4个数字。

我做了:$line =~ /([A-Z]{4}[0-9]{4})/g但我只能捕获第一个实例。当我做2美元时,它说它没有初始化。

如何捕获所有实例?

2 个答案:

答案 0 :(得分:1)

my @matches = $string =~ /[A-Z]{4}\d{4}/g;

答案 1 :(得分:0)

假设:

$ echo "$tgt"
"BLAH1234 xyz BALH3214 xxyyzz BALH3452"

你可以这样做:

$ echo "$tgt" | perl -lne 'print join("|", /[A-Z]{4}\d{4}/g)'
BLAH1234|BALH3214|BALH3452

或者,更明确地说:

my $line="BLAH1234 xyz BALH3214 xxyyzz BALH3452";
for ($line=~/[A-Z]{4}\d{4}/g) {
    print "$_\n";
}

全局查找返回一个列表。