gpt4 book ai didi

regex - 根据 perl 数组评估输入的邮政编码

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

我有一个数组,其中包含 Perl 中邮政编码区域的开头 2 个字符,如下所示:

@acceptedPostcodes = ("CV", "LE", "CM", "CB", "EN", "SG", "NN", "MK", "LU", "PE", "ST", "TF", "DE", "WS");

我有一个搜索框,用户可以在其中输入部分或完整的邮政编码。我需要检查他们输入的邮政编码是否以数组的元素之一开头,例如,如果他们输入“CV2 1DH”,它将评估为 true,如果他们输入类似“YO1 8WE”的内容,它将评估为 false,如下所示它不以数组值之一开头。

现在这对我来说用 PHP 很容易做到,但 Perl 并不是我太擅长的东西,而且到目前为止我的努力还没有取得很大的成果。

有什么想法吗?

最佳答案

如果您接受的邮政编码列表足够大,以至于匹配代码的性能是一个实际问题(可能不是),那么您最好使用哈希查找而不是数组:

#!/usr/bin/perl

use strict;
use warnings;

my %accepted_postcodes = ("CV" => 1, "LE" => 1, "CM" => 1, "CB" => 1, "EN" => 1, "SG" => 1, "NN" => 1, "MK" => 1, "LU" => 1, "PE" => 1, "ST" => 1, "TF" => 1, "DE" => 1, "WS" => 1);
# Or, to be more terse:
# my %accepted_postcodes = map { $_ => 1 } qw(CV LE CM CB EN SG NN MK LU PE ST TF DE WS);

my $postcode = "CV21 1AA";

if (exists $accepted_postcodes{substr $postcode, 0, 2}) {
print "$postcode is OK\n" ;
} else {
print "$postcode is not OK\n";
}

此方法适用于 5.8.8。

关于regex - 根据 perl 数组评估输入的邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895194/

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