我需要在如下所示的数组中的符号之间grep单词。
my $string = "?hi how r u?what is your name?what is your age?";
它将被转换为数组,数组应该是这样的:
my $array[0]="hi how r u";
my $array[1]="what is your name";
my $array[2]="what is your age";
要忽略空结果,可以使用regex匹配输入,并将匹配的结果存储在数组中:
use strict;
use warnings;
my $string = "?hi how r u?what is your name?what is your age?";
my @matches = ( $string =~ /(?<=?)[^?]+/g );
foreach my $i (@matches) {
print $i . "n";
}
输出:
hi how r u
what is your name
what is your age
您可以使用split
函数,但必须转义?
字符,这样它就不会作为正则表达式控制字符的一部分受到特殊处理。
my @array = split '\?', $string;