На самом деле я использую один Perl-скрипт для подготовки Readme TXT для моих сборок. в этом скрипте я использовал
foreach $line (<LOG>)
{
if(length(trim($line))>0)
{
$line=trim($line);
$line=~ s/[\r]//gs;
if(rindex($line,'#')!=-1)
{
$icut=substr($line,0,index($line,']'));
$icut2=substr($icut,index($icut,'#')+1,length($icut));
}
push(@issue,$icut2);
выдает правильную проблему нет, но когда ситуация выглядит как
[I#1303350], [I#1270918],[I#1312521] Updated Physical Confirmation Template based on CO
тогда он выбирает только одну проблему, не все проблемы в той же строке. поэтому я изменил свой код как
foreach $revno(<REV>)
{
if(length(trim($revno))>0)
{
$revno=trim($revno);
$revno=~ s/[\r]//gs;
if(rindex($revno,'#')!=-1)
{
$revcut=substr($revno,0,rindex($revno,']'));
print "$revcut\n";
$revcut1=substr($revcut,index($revcut,'#')+1,length($revcut));
}
}
push(@issue,$revcut1);
Теперь он получает все ревизии, но вывод похож на 1312588,1303350], [I#1270918],[I#1312521
, но я хочу удалить только #
[
]
I
, но не ,
, поэтому скажите, пожалуйста, как мне разобрать это? через регулярное выражение.