Skip to content

Instantly share code, notes, and snippets.

@rallisf1
Created December 2, 2024 12:56
Show Gist options
  • Save rallisf1/4efe14793e63c5539f07ed726da302ab to your computer and use it in GitHub Desktop.
Save rallisf1/4efe14793e63c5539f07ed726da302ab to your computer and use it in GitHub Desktop.
Regex Validation for Greek License Plates
/(ΜΕ[\s|-]?\d{5})|(ΑΜ[\s|-]?\d{5})|(ΔΣ[\s|-]?\d{2,3}[\s|-]?\d{0,3})|(ΑΟ[\s|-]?\d{3}[\s|-]\d{2})|(Α\s?[Α|Ο][\s|-]?\d{3})|(Ρ[\s|-]?\d{5})|(Τ[Α|Χ][\s|-]?\d{5})|(ΔΟΚ[\s|-]?\d{3,5})|(ΑΝΠ[\s|-]?\d{4})|(ΙΟ[\s|-]?\d{5})|([Π|Ε|Λ|Ξ][Σ|Α|Ν][\s|-]?\d{4,6})|([Α|Β|Ε|Ζ|Η|Ι|Κ|Μ|Ν|Ν|Ο|Ρ|Τ|Υ|Χ]{3}[\s|-]?\d{1,4})|([Α|Β|Ε|Ζ|Η|Ι|Κ|Μ|Ν|Ν|Ο|Ρ|Τ|Υ|Χ]{2}[\s|-]?\d{4})/
@rallisf1
Copy link
Author

rallisf1 commented Dec 2, 2024

Πρώτα αφαιρούμε τις τελείες από το string μας και κάνουμε μετατροπή τους λατινικούς σε ελληνικούς χαρακτήρες.

Ο σκοπός αυτού του regex είναι να κάνει input validation, όχι αναγώριση. Η αναγνώριση κάποιων τύπων οχημάτων μέσω των match groups είναι "κερασάκι στην τούρτα". Αναγνώριση πρέπει να κάνετε στον κώδικα σας.

group 1: ΜΗΧΑΝΗΜΑΤΑ ΕΡΓΩΝ ΜΕ[\s|-]?\d{5}
group 2: ΑΓΡΟΤΙΚΑ ΜΗΧΑΝΗΜΑΤΑ ΑΜ[\s|-]?\d{5}
group 3: ΔΙΠΛΩΜΑΤΙΚΕΣ ΔΣ[\s|-]?\d{2,3}[\s|-]?\d{0,3}
group 4: ΑΓΙΟΥ ΟΡΟΥΣ ΑΟ[\s|-]?\d{3}[\s|-]\d{2}
group 5: ΑΓΙΟΥ ΟΡΟΥΣ (ΠΑΛΑΙΕΣ), ΑΡΧΙΕΠΙΣΚΟΠΗΣ ΑΘΗΝΩΝ Α\s?[Α|Ο][\s|-]?\d{3}
group 6: ΡΥΜΟΥΛΚΟΜΕΝΑ Δ.Χ. Ρ[\s|-]?\d{5}
group 7: ΡΥΜΟΥΛΚΟΜΕΝΑ Ι.Χ. Τ[Α|Χ][\s|-]?\d{5}
group 8: ΔΟΚΙΜΑΣΤΙΚΕΣ ΔΟΚ[\s|-]?\d{3,5}
group 9: ΑΝΑΠΗΡΩΝ ΠΟΛΕΜΟΥ ΑΝΠ[\s|-]?\d{4}
group 10: ΙΣΤΟΡΙΚΕΣ (2023+) ΙΟ[\s|-]?\d{5}
group 11: ΣΩΜΑΤΑ ΑΣΦΑΛΕΙΑΣ, ΣΤΡΑΤΟΣ, ΞΕΝΕΣ ΑΠΟΣΤΟΛΕΣ [Π|Ε|Λ|Ξ][Σ|Α|Ν][\s|-]?\d{4,6}
group 12: ΑΥΤΟΚΙΝΗΤΑ, ΜΟΤΟΣΙΚΛΕΤΕΣ, ΤΑΞΙ, (ΗΜΙ)ΦΟΡΤΗΓΑ [Α|Β|Ε|Ζ|Η|Ι|Κ|Μ|Ν|Ν|Ο|Ρ|Τ|Υ|Χ]{3}[\s|-]?\d{1,4}
group 13: ΑΥΤΟΚΙΝΗΤΑ, ΜΟΤΟΣΙΚΛΕΤΕΣ (1972-1984) [Α|Β|Ε|Ζ|Η|Ι|Κ|Μ|Ν|Ν|Ο|Ρ|Τ|Υ|Χ]{2}[\s|-]?\d{4}

Δεν υποστηρίζονται: Λοιπές εκκλησιαστικές πινακίνες, Προέδρου της Κυβερνήσεως, πινακίδες παλαιότερες του 1972

Πηγή: Wikipedia και 2 ΦΕΚ που κοίταξα για διευκρινήσεις.

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