gpt4 book ai didi

perl - 在 perl 中将唯一的正则表达式输出记录到数组时出现问题

转载 作者:行者123 更新时间:2023-12-02 08:59:26 25 4
gpt4 key购买 nike

以下代码示例的目标是读取 $target 的内容并将所有唯一正则表达式搜索结果分配给一个数组。

我已经确认我的正则表达式语句有效,因此我正在简化它,以免关注它。

当我执行脚本时,我得到了所有正则表达式结果的列表,但是,结果并不唯一,这让我相信我对数组或我​​的 if (grep{$_ eq $1} @array) { 检查导致了问题。

#!/usr/bin/env perl

$target = "string to search";

$inc = 0;
$once = 1;

while ($target =~ m/(regex)/g) { #While a regex result is returned
if ($once) { #If $once is not equal to zero
@array[$inc] = $1; #Set the first regex result equal to @array[0]
$once = 0; #Set $once equal to zero so this is not executed more than once
} else {
if (grep{$_ eq $1 } @array ) { #From the second regex result, check to see if the result is already in the array
#If so, do nothing
} else {
@array[$inc] = $1; #If it is not, then assign the regex search result to the next unused position in the array in any position.
$inc++; #Increment to next unused array position.
}
}
}

print @array;

exit 0;

最佳答案

这个怎么样:

while ($target =~ m/(regex)/g) {
$hash{$1}++;
}
print keys %hash;

更新:

# if the order matters
while ($target =~ m/(a.)/g) {
$hash{$1} = ++$i unless $hash{$1};
}
@array = sort {$hash{$a} <=> $hash{$b}} keys %hash;

关于perl - 在 perl 中将唯一的正则表达式输出记录到数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2431869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com