0


デンマークの郵便番号: xxxxノルウェーの郵便番号: Nxxxx
(社内のカスタム パターン)
スウェーデンの郵便番号: Sxxxxx (社内のカスタム パターン)グリーンランドの郵便
番号: Gxxxx (社内のカスタム パターン)
アイスランドの郵便番号: xxx

よくわかります。

ここで、FO-xxx のパターンにフェロー諸島の郵便番号を含める必要があります。

私がソファを持っているもの。

^(\D[0-9]{2,6}\s\D{3,})|([0-9]{3,6}\s\D{3,})$

{2,5} から {2,6} を編集し、{2,} から {3,} を編集しました。

どうもありがとうございました

4

2 に答える 2

2

^[NG]?\d{4}|S\d{5}|(FO-)?\d{3}$で十分だと思います 。

これにより、次のいずれかが可能になります。

  • オプションの N または G とそれに続く 4 つの必須数字 (デンマーク語、ノルウェー語、グリーンランドに一致)
  • S の後に 5 桁の数字 (スウェーデン語に一致)
  • FO- のオプション部分と、それに続く 3 つの必須数字 (アイスランドとフェロー諸島に一致)

正規表現は次の^(\D[0-9]{2,6}\s\D{3,})|([0-9]{3,6}\s\D{3,})$ようなパターンに一致します:数字以外の後に 2 ~ 6 桁、その後にスペース、その後に 3 つ以上の数字以外、または 36 桁、その後にスペース、その後に 3 つ以上の数字以外。これはあなたの要件を満たしていないようです(述べたように)。

于 2013-02-20T12:58:31.983 に答える
0

郵便番号ごとに単純な正規表現を作成し、それらをプログラムで1つの正規表現に結合することをお勧めします。これにより、既存の正規表現よりも正確なチェックが実行されます。また、エラーが発生しにくくなり、保守がはるかに簡単になります。さらに、将来必要になった場合に、特定の国の郵便番号に一致させるなどの追加の機能を提供します。これは私がPerlでそれをコーディングする方法の例です:

use warnings;
use strict;

my %codes = (
    'Danish' => '\d{4}',
    'Norwegian' => 'N\d{4}',
    'Faroese' => 'FO-\d{3}'
);

my $zip_regex = '^' . join('|', values %codes) . '$';

if ($some_var =~ /$zip_regex/)
{
    print "$some_var is a zip code";
}

このアプローチは、どの言語でも使用できる必要があります。

于 2013-02-20T12:54:09.587 に答える