gpt4 book ai didi

regex - 如何在数组上使用正则表达式?

转载 作者:行者123 更新时间:2023-12-01 11:42:44 24 4
gpt4 key购买 nike

我想在下面的数组中找到名称 tank2,所以我这样做了

#!/usr/bin/perl                                                                                           
use strict; use warnings;

my @out = ("aaa\n", "pool: tank2\n", "ccc\n");
foreach my $line (@out) {$line =~ /pool: (.+)/; print $1;}

得到

Use of uninitialized value $1 in print
tank2tank2

我的两个问题是

  • 由于某种原因,该名称被打印了两次并且出现错误。
  • 如何在第一次找到结果/名称时将其保存在变量中?

最佳答案

相当难读的版本:)

#!/usr/bin/perl                                                                                           
use strict; use warnings;

my @out = ("aaa\n", "pool: tank2\n", "ccc\n");
(my $var = (grep{/pool: (.+)/}@out)[0] )=~s/pool: //;
print $var;

和你的改进版本:

#!/usr/bin/perl                                                                                           
use strict; use warnings;

my @out = ("aaa\n", "pool: tank2\n", "ccc\n");
for my $line (@out) {
print $1 if $line =~ /pool: (.+)/;
}

没有$1:

my $var;
for my $line (@out){
print $var if ($var) = ($line =~ /pool: (.+)/);
}

关于regex - 如何在数组上使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17966304/

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