The Code For Recognizing Delivery Company By Tracking Number
Maybe your like
In this post I'm going to offer you a solution that recognizes a delivery company by tracking number.
All companies use their own tracking number format, so I have created special regular expressions for all of them. I read about formats in the official documentation of delivery companies. This solution works for the following services:
- UPS
- USPS
- FedEX
Formats of tracking numbers
FedEX
The most common tracking number format is 12 digits or 15 digits.Some other less common formats may also exist, such as 20 digits and 22 digits.
FedEX tracking number examples
9999 9999 99999999 9999 9999 9999999 9999 9999 9999 99999999 9999 9999 9999 9999 99
UPS
The most common tracking number format is a combination of 18 alphabetic and numeric characters, usually starting with "1Z". Some other less common formats may also exist.
UPS tracking number examples
1Z 9999 9999 9999 99999999 9999 9999T 9999 9999 999999 99999
USPS
The most common tracking number format is 20 digits or a combination of 13 alphabetic and numeric characters, usually starting with 2 alphabets, following by 9 digits, and ending with "US". Some other less common formats may also exist, such as 10 digits.
USPS tracking number examples
USPS Tracking® 9400 1000 0000 0000 0000 00Priority Mail® 9205 5000 0000 0000 0000 00Certified Mail® 9407 3000 0000 0000 0000 00Collect On Delivery Hold For Pickup 9303 3000 0000 0000 0000 00Global Express Guaranteed® 82 000 000 00Priority Mail Express International® EC 000 000 000 USPriority Mail Express® 9270 1000 0000 0000 0000 00EA 000 000 000 USPriority Mail International® CP 000 000 000 USRegistered Mail™ 9208 8000 0000 0000 0000 00Signature Confirmation™ 9202 1000 0000 0000 0000 00
Code for tracking number recognition (regex)
FedEx
^[0-9]{20}$^[0-9]{15}$^[0-9]{12}$^[0-9]{22}$UPS
^(1Z)[0-9A-Z]{16}$^(T)+[0-9A-Z]{10}$^[0-9]{9}$^[0-9]{26}$USPS
^(94|93|92|94|95)[0-9]{20}$ ^(94|93|92|94|95)[0-9]{22}$ ^(70|14|23|03)[0-9]{14}$ ^(M0|82)[0-9]{8}$ ^([A-Z]{2})[0-9]{9}([A-Z]{2})$Python script for delivery company recognition
import re def recognize_delivery_service(tracking): service = None usps_pattern = [ '^(94|93|92|94|95)[0-9]{20}$', '^(94|93|92|94|95)[0-9]{22}$', '^(70|14|23|03)[0-9]{14}$', '^(M0|82)[0-9]{8}$', '^([A-Z]{2})[0-9]{9}([A-Z]{2})$' ] ups_pattern = [ '^(1Z)[0-9A-Z]{16}$', '^(T)+[0-9A-Z]{10}$', '^[0-9]{9}$', '^[0-9]{26}$' ] fedex_pattern = [ '^[0-9]{20}$', '^[0-9]{15}$', '^[0-9]{12}$', '^[0-9]{22}$' ] usps = "(" + ")|(".join(usps_pattern) + ")" fedex = "(" + ")|(".join(fedex_pattern) + ")" ups= "(" + ")|(".join(ups_pattern) + ")" if re.match(usps, tracking) != None: service = 'USPS' elif re.match(ups, tracking) != None: service = 'UPS' elif re.match(fedex, tracking) != None: service = 'FedEx' return servicePHP class for delivery company recognition
class Tracking { public function getPostServiceName($track) { $service = ''; if($this->isUSPSTrack($track)) { $service = 'USPS'; } elseif ($this->isUPSTrack($track)) { $service = 'UPS'; } elseif ($this->isFedExTrack($track)) { $service = 'FedEx'; } return $service; } private function isUSPSTrack($track) { $usps = array(); $usps[0] = '^(94|93|92|94|95)[0-9]{20}$'; $usps[1] = '^(94|93|92|94|95)[0-9]{22}$'; $usps[2] = '^(70|14|23|03)[0-9]{14}$'; $usps[3] = '^(M0|82)[0-9]{8}$'; $usps[4] = '^([A-Z]{2})[0-9]{9}([A-Z]{2})$'; if (preg_match('/('.$usps[0].')|('.$usps[1].')|('.$usps[2].')|('.$usps[3].')|('.$usps[4].')/', $track)) { return true; } return false; } private function isUPSTrack($track) { $ups = array(); $ups[0] = '^(1Z)[0-9A-Z]{16}$'; $ups[1] = '^(T)+[0-9A-Z]{10}$'; $ups[2] = '^[0-9]{9}$'; $ups[3] = '^[0-9]{26}$'; if (preg_match('/('.$ups[0].')|('.$ups[1].')|('.$ups[2].')|('.$ups[3].')/', $track)) { return true; } return false; } private function isFedExTrack($track) { $fedex = array(); $fedex[0] = '^[0-9]{20}$'; $fedex[1] = '^[0-9]{15}$'; $fedex[2] = '^[0-9]{12}$'; $fedex[3] = '^[0-9]{22}$'; if (preg_match('/('.$fedex[0].')|('.$fedex[1].')|('.$fedex[2].')|('.$fedex[3].')/', $track)) { return true; } return false; } }To summarize
You can find this code on my GitHub repository related to this topic.
If the format has changed or you have found inaccuracies in this information - please leave a comment below.
I hope this post was helpful and saved time for you.
Tag » How Many Numbers In Usps Tracking
-
USPS Postal Service Tracking: What It Is And How To Use It
-
USPS Tracking
-
USPS Tracking Package And Mail
-
My Tracking Number Doesn't Work, What Should I Do?
-
What Do The First Four Tracking Numbers Stand For In USPS?
-
How Many Numbers USPS Tracking In 2022? (Meaning + More)
-
How Long Is The USPS Tracking Number? - Quora
-
® - USPS Tracking®
-
USPS Tracking Number Example & Format
-
[Latest] USPS Tracking Number Examples And Format - GeekzOwns
-
USPS Tracking Number Examples: 3 Main Format Details
-
How Many Numbers In USPS Tracking - 2022
-
How To Track A USPS Package | Calcurates By Amasty
-
USPS Tracking Number | USPS Parcel Tracking