Regex help plz
Voila j'aimerai résoudre ce problème en utilisant le regex voici mon code
import re
def ip_checker(ip_adress=str):
ip = re.match(r"^(?:[0-9]{1,3}\.){3}([0-9]{1,3}$)", ip_adress)
for elt in ip_adress.split("."):
return False if elt.isalpha() else ip and int(elt) <= 255
l'exercice ne me valide pas condition numéro 4 alors que sur pycharm la valeur False m'est bien retournée.
Des suggestions ?
Bonjour Mehdi,
de mon côté avec ton script la condition numéro 4 ne retourne rien:
Ta regex est assez balèze =D c'est ta première tentative pour l'exercice ? Tu peux faire plus simple en testant si tu as bien 4 morceaux séparés par un "." et tester chaque élément. Si tu veux faire avec la regex continue bien sûr pas de souci.
Bonjour,
non j'ai déjà réussit l'exercice mais comme je m'entraine un peu sur le REGEX je voulais mettre en application.
Etrange pour ma part le code me retourne bien False sur pycharm et sur VSC et la je vois bien que sur votre interpreur il retourne rien ...
import re
def ip_checker(ip_adress=str):
ip = re.match(r"^(?:[0-9]{1,3}\.){3}([0-9]{1,3}$)", ip_adress)
for elt in ip_adress.split("."):
return False if elt.isalpha() else ip and int(elt) <= 255
print(bool(ip_checker("255.0.128")))
"C:\Users\Al kubaisi Mehdi\PycharmProjects\pythonProject\venv\Scripts\python.exe" "C:\Users\Al kubaisi Mehdi\PycharmProjects\pythonProject\test.py"
False
Process finished with exit code 0
je suppose pour mon égo perso que ça fonctionne :D
PS : quand tu dis que le regex est balèze tu veux dire par la que je pourrais le simplifier ?
Hello Mehdi,
Je ne sais pas si tu connais le site https://www.autoregex.xyz/home, mais ça te permet de traduire des indications en anglais en regex. Par exemple, dans le cas de l'exercice :
Et en l'incluant dans une fonction :
def ip_checker(ip_address):
"""Checks if the IP address is valid with regex."""
pattern = re.compile(
r'^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$')
return bool(pattern.match(ip_address))
Ca te valide l'exo. :)
Wow je ne connaissais pas ce site une sorte de chatGPT du regex.
effectivement en regardant de plus près le code regex généré ici il valide une ip4 avec les bons paramètres alors que mon code ne tient pas compte de la valeur max 255 d'ou ma condition dans le code.
Merci Vincent pour le site en favoris de suite :)
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte