Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 在字符串数组中搜索特定单词_Perl - Fatal编程技术网

Perl 在字符串数组中搜索特定单词

Perl 在字符串数组中搜索特定单词,perl,Perl,首先,我一点也不懂Perl,需要一个合理快速的答案。我得到了运行存储在数组中的命令的结果: my @result = `$command`; 我需要做的是搜索数组,看看是否有任何元素包含单词“Merge”或单词“changed”(不区分大小写) 有人能提供建议吗?这里的作业工具是grep——一个允许您根据列表指定筛选器的函数。您可以像Unixgrep一样使用它,但它也允许进行更复杂的测试(例如,要运行的代码) 就你而言: my @matches = grep { /merge|changed/

首先,我一点也不懂Perl,需要一个合理快速的答案。我得到了运行存储在数组中的命令的结果:

my @result = `$command`;
我需要做的是搜索数组,看看是否有任何元素包含单词“Merge”或单词“changed”(不区分大小写)


有人能提供建议吗?

这里的作业工具是
grep
——一个允许您根据列表指定筛选器的函数。您可以像Unix
grep
一样使用它,但它也允许进行更复杂的测试(例如,要运行的代码)

就你而言:

my @matches = grep { /merge|changed/i } @result; 

if ( @matches ) { 
    print "One or more lines matched\n";
}

您可以使用正则表达式来实现这一点。在本例中,如果行匹配“合并”或“更改”(当然不敏感),则打印行:

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

my @result = `command`;

foreach my $line (@result){
    if ($line =~ /merge|changed/i){
        print $line;
    }
}

这被grep在perl中所覆盖:很好,要么不知道perl(我公开承认),要么执行不充分的谷歌搜索,都被否决了。谢谢。在匹配运算符上,您需要<代码> /i >代码>不区分大小写匹配。<代码> /\b((:合并更改))\b/i < /代码>将阻止<代码>浸没< /代码>匹配<代码> /\b((:合并→更改)\b/i < /代码>将防止<代码>浸没< /代码>匹配中间的斜线>确实是一个错误;我试过使用命令“ps aux”和regex/bAsh | apAChe/i,效果非常好