ウェブサイト検索

アメリカの郵便番号5桁の正規表現検証


このチュートリアルの目的は、Linuxシステム上でアメリカの郵便番号を検証するために、BashシェルスクリプトまたはPythonプログラミングコードを使用する方法を示すことです。

Linuxコマンドラインからアメリカの郵便番号を検証するための例のスクリプトを以下で確認してください。

このチュートリアルでは、あなたは学びます:

  • Bashを使用して米国の郵便番号を検証する方法
  • アメリカの郵便番号を検証するためにPythonを使う方法

アメリカの郵便番号を検証するための正規表現 - BashおよびPythonの例

ご推察のとおり、Linuxで郵便番号を検証するために使用できるさまざまなプログラミング言語があります。米国の郵便番号は、合計5桁または5桁の後にハイフンと4桁の数字が続くことができます。スクリプトは、正規表現を使用してその要件が満たされていることを確認する必要があります。つまり、以下のような数字が考えられます:

有効な数字の例:

  • 32344
  • 32344-4444

無効な番号の例:

  • 323445-44
  • 323445

Linuxでその作業に最も人気のあるツールの2つは、BashシェルとPythonプログラミング言語です。どちらも数行の短いコードで郵便番号をチェックすることができます。以下の好みの方法を使用し、私たちのスクリプトの例を自分のシステムにコピーして郵便番号の検証を始めてください。

郵便番号を検証するためのBashの例

Bashスクリプト:


#!/bin/bash

regexp to get a valid US postal code
echo $1 | grep -qE '^[0-9]{5}(-[0-9]{4})?$'

if [ $? -eq 0 ]; then
	echo "$1 is a valid US postal code."
else
	echo "$1 is an invalid US postal code."
fi

Bashスクリプトの実行:


chmod +x validate_us_postal_code.sh

./validate_us_postal_code.sh 32344-4444
32344-4444 is a valid US postal code.

./validate_us_postal_code.sh 32344
32344 is a valid US postal code.

./validate_us_postal_code.sh 323445-44
323445-44 is an invalid US postal code.

./validate_us_postal_code.sh 323445
323445 is an invalid US postal code.

郵便番号を検証するためのPythonの例

Python スクリプト:


import re
zip_list=['32344-4444',
'32344',
'323445-44',
'323445']
pattern = '^[0-9]{5}(-[0-9]{4})?$'
for eachnumber in zip_list:
    result = re.match(pattern, eachnumber)
    if result:
        print(eachnumber+" is a valid US postal code.")
    else:
        print(eachnumber+" is an invalid US postal code.")

Pythonスクリプトの実行:


python3 validate_us_zip_code.py

32344-4444 is a valid US postal code.

32344 is a valid US postal code.

323445-44 is an invalid US postal code.

323445 is an invalid US postal code.

締めくくりの考え

このチュートリアルでは、Linux上でZipコードを検証するためにBashやPythonスクリプトを使用する方法を学びました。正規表現だけを使用するため、どちらのプログラミング言語でもかなり簡単な作業となります。そしてもちろん、他の多くのプログラミング言語もこのタスクを処理することができます。

関連記事: