Skip to content

Instantly share code, notes, and snippets.

@ryskin
Forked from eightyknots/avregex.md
Created January 22, 2018 11:04
Show Gist options
  • Save ryskin/0127a60962f085c60e8a6ef5711bcbdd to your computer and use it in GitHub Desktop.
Save ryskin/0127a60962f085c60e8a6ef5711bcbdd to your computer and use it in GitHub Desktop.
AvReg: Aviation regex match toolkit

AvReg: The Aviation RegEx Match Toolkit

General Tips

  • The PCRE flavour of RegEx is used here.
  • Append the i modifier to the end of the regex to make any pattern case-insensitive.

Airline Codes

Purpose Description RegEx Example
IATA code Commercial service mark /^[A-Z0-9]{2}$/ CX
ICAO code Operational service mark /^[A-Z]{3}$/ CPA
Ticketing prefix eTicket operator code /^[0-9]{3}$/ 160

Airport Codes

Purpose Description RegEx Example
IATA code Commercial service mark /^[A-Z]{3}$/ LHR
ICAO code Operational service mark /^[A-Z]{4}$/ EGLL
FAA code US FAA-specific locator /^[A-Z0-9]{3}$/ L67

Air Navigation & Communication

Note: Privately-owned Canadian NDBs may utilize a letter and number combination.

Purpose Description RegEx Example
NDB Non-directional beacon identifier /^[A-Z]{1-3}$/ TD
VOR VHF omnidirectional range ident /^[A-Z]{3}$/ APU
INT Airway intersection waypoint /^[A-Z]{5}$/ PRAWN
Squawk Code Unique transponder octal code /^[0-7]{4}$/ 0318
Distress If match, aircraft is in distress /^7[567]00$/ 7700

Ticketing & Business Operations

Note that for PNR record identifiers, some GDS providers and operators use 5-character PNR idents, but most use 6-character ones. Additionally, for readibility purposes, some airlines and systems will skip 0, 1, I, L, and O.

Purpose Description RegEx Example
PNR identifier Passenger record locator /^[A-Z0-9]{5,6}$/ J5XTP2
E-ticket number Ticketing and itinerary identifier /^[0-9]{3}(-)?[0-9]{10}$/ 160-4837291830

Flight Operations

Purpose Description RegEx Example
Flight number IATA (marketing) flight number /^[A-Z0-9]{3,}$/ BA026
Callsign ICAO (operational) flight number /^[A-Z]{3}[A-Z0-9]{1,}$/ BAW319K

|

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment