Computer Code Python CCP 14 : expressions régulières
1 Trouver un numéro de téléphone américain SANS expression régulière
def isPhoneNumber(text): if len(text) != 12: return False for i in range(0, 3): if not text[i].isdecimal(): return False if text[3] != '-': return False for i in range(4, 7): if not text[i].isdecimal(): return False if text[7] != '-': return False for i in range(8, 12): if not text[i].isdecimal(): return False return True def answer(text): if isPhoneNumber(text): print(text + ' est un numéro américain') else: print(text + " n'est pas un numéro américain") answer('415-555-4242') answer('04-91-50-50-97')
2 Trouver un numéro de téléphone américain AVEC expression régulière
import re # version américaine americanPhoneNumRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d') mo = americanPhoneNumRegex.search('My american number is 415-555-4242.') # match object if mo: print('Numéro de téléphone américain') print('American phone number found: ' + mo.group()) # version française frenchPhoneNumRegex = re.compile(r'\d\d-\d\d-\d\d-\d\d-\d\d') mo2 = frenchPhoneNumRegex.search('My american number is 01-77-50-59-42.') # match object if mo2: print('Numéro de téléphone français') print('Numéro de téléphone français trouvé : ' + mo2.group())
3 Bilan
Nous avons vu dans ce cours :
- que les problèmes de recherches de motifs dans des chaînes de caractères peuvent conduire à des programmes lourds si on n'utilise pas les bons outils
- que les expressions régulières permettent de résoudre ce genre de problème efficacement
- qu'il reste encore beaucoup de choses à découvrir avec les expressions régulières
- un outil pour faire des tests https://www.regexpal.com/
4 Pour aller plus loin
- La vidéo sur YouTube : https://youtu.be/zglIQByFM4o
- La version Markdown sur Steemit : https://steemit.com/fr/@lgsp/computer-code-python-ccp-14-expressions-regulieres-github-steemit
- La formation pour apprendre à coder une blockchain avec Python : ACBP
- La formation pour découvrir les technologies blockchain : CDBSSR
- La formation pour devenir full stack developer : FSD
- Le pack avec un paiement en 10 fois : https://glmp.systeme.io/pack-3-formations-10-fois