在perl中提取匹配的模式(Numbers + Name)

时间:2014-10-10 11:57:16

标签: regex perl

我使用下面提到的模式来搜索并从大字符串中提取字符串。 示例输入字符串,如

loadStringCombo('1',10,1,10,MaxCallApprComboBxId,quatstyle='width:50px;'quat)

预期产出

(10,1,10,MaxCallApprComboBxId,) 

但是通过这种方式我只得到了combobox1作为输出。

while ( my $st = $str =~ /[0-9]+[\,][0-9]+[\,][0-9]+[\,][0-9a-zA-Z]+[\,]/g ) {
    my $str3 = "combobox" . $st;
    push @arry1, $str3 . "\n";
    print @arry1, "\n";
    open FILE, ">test.txt" or die $!;
    print FILE @arry1, "\n";
}

请指导我提取值10,1,10,MaxCallApprComboBxId,。

1 个答案:

答案 0 :(得分:1)

替换此行:

while ( my $st = $str =~ /[0-9]+[\,][0-9]+[\,][0-9]+[\,][0-9a-zA-Z]+[\,]/g ) {

由:

while ( my ($st) = $str =~ /(\d+,\d+,\d+,[0-9a-zA-Z]+,)/g ) {

整个循环:

while ($str =~ /(\d+,\d+,\d+,[0-9a-zA-Z]+,)/g ) {
    push @arry1, "combobox$1";
}
use Data::Dumper;
print Dumper\@arry1;
open my $FILE, '>', 'test.txt' or die $!;
print $FILE "@arry1";