Exercice Corrigé: Les expressions régulières en Python – Partie 2

Avec des exercices corrigés en Python, vous pratiquerez divers concepts du langage Python. Vous commencerez par des exercices Python de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 

Exercice 1:

Écrire un programme Python qui fait correspondre un mot à la fin d’une chaîne de caractères, avec une ponctuation optionnelle.

Exemple:

check("hello world.") -> Une correspondance trouvée!
check("hello world") -> Une correspondance trouvée!
check("hello world. ") -> Pas de correspondance!
Solution:

import re

def check(str):
    motif = '\w+\S*$'
    if re.search(motif, str):
        return 'Une correspondance trouvée!'
    else:
        return('Pas de correspondance!')

print(check("hello world."))
print(check("hello world"))
print(check("hello world. "))

Sortie:

Une correspondance trouvée!
Une correspondance trouvée!
Pas de correspondance!
 

Exercice 2:

Écrire un programme Python qui fait correspondre un mot contenant « z ».

Exemple:

check("hello zebra") -> Une correspondance trouvée!
check("hello lion") -> Pas de correspondance!
Solution:

import re

def check(str):
    motif = '\w*z.\w*'
    if re.search(motif, str):
        return 'Une correspondance trouvée!'
    else:
        return('Pas de correspondance!')

print(check("hello zebra"))
print(check("hello lion"))

Sortie:

Une correspondance trouvée!
Pas de correspondance!
 

Exercice 3:

Écrire un programme Python qui fait correspondre un mot contenant « z », mais pas le début ou la fin du mot.

Exemple:

check("hello zebra") -> Pas de correspondance!
check("hello lion") -> Pas de correspondance!
check("hello lizard") -> Une correspondance trouvée!
Solution:

import re

def check(str):
    motif = '\Bz\B'
    if re.search(motif, str):
        return 'Une correspondance trouvée!'
    else:
        return('Pas de correspondance!')

print(check("hello zebra"))
print(check("hello lion"))
print(check("hello lizard"))

Sortie:

Pas de correspondance!
Pas de correspondance!
Une correspondance trouvée!
 

Exercice 4:

Écrire un programme Python pour faire correspondre une chaîne de caractères contenant uniquement des lettres majuscules et minuscules, des chiffres et des underscores.

Exemple:

check("Hello_World_5") -> Une correspondance trouvée!
check("Hello World") -> Pas de correspondance!
Solution:

import re

def check(str):
    motif = '^[a-zA-Z0-9_]*$'
    if re.search(motif, str):
        return 'Une correspondance trouvée!'
    else:
        return('Pas de correspondance!')

print(check("Hello_World_5"))
print(check("Hello World"))

Sortie:

Une correspondance trouvée!
Pas de correspondance!
 

Exercice 5:

Écrire un programme Python qui fait correspondre chaque chaîne de caractères commençant par 33.

Exemple:

check('033-56-86-96-77') -> False
check('33-56-86-96-77') -> True
Solution:

import re

def check(string):
    text = re.compile(r"^33")
    if text.match(string):
        return True
    else:
        return False

print(check('033-56-86-96-77'))
print(check('33-56-86-96-77'))

Sortie:

False
True
 

Exercice 6:

Écrire un programme Python pour supprimer les zéros initiaux d’une adresse IP.

Exemple:

192.08.094.254 -> 192.8.94.254
Solution:

import re
ip = "192.08.094.254"
str = re.sub('\.[0]*', '.', ip)
print(str)

Sortie:

192.8.94.254
 

Exercice 7:

Écrire un programme Python pour vérifier la présence d’un nombre à la fin d’une chaîne de caractères.

Exemple:

check('abc') -> False
check('abc5') -> True
Solution:

import re

def check(string):
    text = re.compile(r".*[0-9]$")
    if text.match(string):
        return True
    else:
        return False

print(check('abc'))
print(check('abc5'))

Sortie:

False
True
 

Exercice 8:

Ecrivez un programme Python pour rechercher les nombres (0-9) de longueur comprise entre 1 et 3 dans une chaîne donnée.

Exemple:

str = "Hello 1, 10, 100 ..."

Sortie attendu:
Nombre de longueurs 1 à 3:
1
10
100
Solution:

import re

str = "Hello 1, 10, 100 ..."
results = re.finditer(r"([0-9]{1,3})", str)
print("Nombre de longueurs 1 à 3:")
for n in results:
     print(n.group(0))

Sortie:

Nombre de longueurs 1 à 3:
1
10
100
 

Exercice 9:

Écrire un programme Python pour trouver les sous-chaînes d’une chaîne de caractères.

Exemple:

str = 'Java tutorials, PHP tutorials, C tutorials'
motif = 'tutorials'

Sortie attendu:
"tutorials" trouvée
"tutorials" trouvée
"tutorials" trouvée
Solution:

import re
str = 'Java tutorials, PHP tutorials, C tutorials'
motif = 'tutorials'
for match in re.findall(motif, str):
    print('"%s" trouvée' % match)

Sortie:

"tutorials" trouvée
"tutorials" trouvée
"tutorials" trouvée
 

Exercice 10:

Écrire un programme Python pour trouver l’occurrence et la position des sous-chaînes dans une chaîne de caractères.

Exemple:

str = 'Java tutorials, PHP tutorials, C tutorials'
motif = 'tutorials'

Sortie attendu:
Trouvé "tutorials" à 5:14
Trouvé "tutorials" à 20:29
Trouvé "tutorials" à 33:42
Solution:

import re
str = 'Java tutorials, PHP tutorials, C tutorials'
motif = 'tutorials'
for match in re.finditer(motif, str):
    s = match.start()
    e = match.end()
    print('Trouvé "%s" à %d:%d' % (str[s:e], s, e))

Sortie:

Trouvé "tutorials" à 5:14
Trouvé "tutorials" à 20:29
Trouvé "tutorials" à 33:42
 

Éditeur de code Python: Testez votre code en ligne!


 

QCM Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *