Skip to content

Instantly share code, notes, and snippets.

@mjordan
Created August 14, 2023 20:47
Show Gist options
  • Save mjordan/3339b6d1c94ede805b1337184de07a8a to your computer and use it in GitHub Desktop.
Save mjordan/3339b6d1c94ede805b1337184de07a8a to your computer and use it in GitHub Desktop.
import sys
import re
date = sys.argv[1].strip()
# nnnX?
if re.match('^[1-2[1-9]{1,2}X\?', date):
print(f"OK - {date} matches /nnnX?/.")
# nXXX?
elif re.match('^[1-2]XXX\?', date):
print(f"OK - {date} matches /nXXX?/.")
# nnXX?
elif re.match('^[1-2]\dXX\?', date):
print(f"OK - {date} matches /nnXX?/.")
# nnnX?
elif re.match('^[1-2]\d\dX\?', date):
print(f"OK - {date} matches /nnnX?/.")
# nXXX~
elif re.match('^[1-2]XXX\~', date):
print(f"OK - {date} matches /nXXX~/.")
# nnXX~
elif re.match('^[1-2]\dXX\~', date):
print(f"OK - {date} matches /nnXX~/.")
# nnnX~
elif re.match('^[1-2]\d\dX\~', date):
print(f"OK - {date} matches /nnnX~/.")
# nXXX%
elif re.match('^[1-2]XXX\%', date):
print(f"OK - {date} matches /nXXX%/.")
# nnXX%
elif re.match('^[1-2]\dXX\%', date):
print(f"OK - {date} matches /nnXX%/.")
# nnnX%
elif re.match('^[1-2]\d\dX\%', date):
print(f"OK - {date} matches /nnnX%/.")
# XXXX?
elif re.match('^XXXX\?', date):
print(f"OK - {date} matches /XXXX?/.")
# XXXX~
elif re.match('^XXXX\~', date):
print(f"OK - {date} matches /XXXX~/.")
# XXXX%
elif re.match('^XXXX\%', date):
print(f"OK - {date} matches /XXXX%/.")
else:
print(f"Sorry - {date} does not match any pattern")
@mjordan
Copy link
Author

mjordan commented Aug 15, 2023

Updated version:

import sys
import re

date = sys.argv[1].strip()

# nnnX?
if re.match('^[1-2]\d\dX\?', date):
    print(f"OK - {date} matches /nnnX?/.")
# nnXX?
elif re.match('^[1-2]\dXX\?', date):
    print(f"OK - {date} matches /nnXX?/.")
# nXXX?
elif re.match('^[1-2]XXX\?', date):
    print(f"OK - {date} matches /nXXX?/.")
# nXXX~
elif re.match('^[1-2]XXX\~', date):
    print(f"OK - {date} matches /nXXX~/.")
# nnXX~
elif re.match('^[1-2]\dXX\~', date):
    print(f"OK - {date} matches /nnXX~/.")
# nnnX~
elif re.match('^[1-2]\d\dX\~', date):
    print(f"OK - {date} matches /nnnX~/.")
# nXXX%
elif re.match('^[1-2]XXX\%', date):
    print(f"OK - {date} matches /nXXX%/.")
# nnXX%
elif re.match('^[1-2]\dXX\%', date):
    print(f"OK - {date} matches /nnXX%/.")
# nnnX%
elif re.match('^[1-2]\d\dX\%', date):
    print(f"OK - {date} matches /nnnX%/.")
# XXXX?
elif re.match('^XXXX\?', date):
    print(f"OK - {date} matches /XXXX?/.")
# XXXX~
elif re.match('^XXXX\~', date):
    print(f"OK - {date} matches /XXXX~/.")
# XXXX%
elif re.match('^XXXX\%', date):
    print(f"OK - {date} matches /XXXX%/.")
else:
    print(f"Sorry - {date} does not match any pattern")

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