-
-
Save JoshuaCarroll/f6b2c64992dfe23feed49a117f5d1a43 to your computer and use it in GitHub Desktop.
All amateur radio call signs: | |
[a-zA-Z0-9]{1,3}[0-9][a-zA-Z0-9]{0,3}[a-zA-Z] | |
Non-US call signs: | |
\b(?!K)(?!k)(?!N)(?!n)(?!W)(?!w)(?!A[A-L])(?!a[a-l])[a-zA-Z0-9][a-zA-Z0-9]?[a-zA-Z0-9]?[0-9][a-zA-Z0-9][a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?\b | |
US call signs: | |
^[AKNW][A-Z]{0,2}[0-9][A-Z]{1,3}$ |
Thanks for providing this! I modified the expression to not match calls like: A6AA, A6AAA, AAA6A since these don't follow the U.S. rules. Also calls in the range AM* to AZ* don't get matched either.
Modified RegEx: ^[KNWknw][a-zA-Z]{0,2}[0-9][a-zA-Z]{1,3}$|^[Aa][a-lA-L]{1}[0-9][a-zA-Z]{1,2}$
This matches the whole string too. Been using this to validate U.S. callsigns in the DMR database as well as finding several malformed U.S. calls.
@JoshuaCarroll Just saw your comment. Learning Flutter and making a simple call sign lookup iOS and Android app.
Very cool! Thanks for sharing!
According to the Radio Regulations of the ITU, Section III, Article 19, a regular expression for callsigns is:
([BFGKIMNRW]|[0-9][A-Z]|[A-Z][0-9]|[A-Z][A-Z])[0-9][0-9A-Z]*[A-Z]
This, of course, leaves some call signs that are or have been used such as D4A, JY1, 7Q1, or 3DA0RS.
I have not included the prefixes used when operating abroad such as in CT7/EA5IYL or suffixes such as /P, /M, /MM, /B, or /3.
Thank you! I'm using this to validate call signs in a program to create accounts on a ham radio club station computer.