Exemple de comment extraire la première lettre de chaque mot d'une phrase avec python en utilisant une expression régulière ?
Utiliser une expression régulière Python
Considérons la phrase suivante :
import re
s = 'Hello, how are you today'
pour extraire la première lettre de chaque mot :
re.findall(r'\b([a-zA-Z]|\d+)', s)
donne
['H', 'h', 'a', 'y', 't']
Notez que
l = re.findall(r'\b([a-zA-Z]|\d+)', s)
print(type(l) )
retourne une liste
<class 'list'>
Pour convertir les lettres en minuscules"
l = [e.lower() for e in l]
print( l )
donne alors
['h', 'h', 'a', 'y', 't']
Pour joindre toutes les lettres"
'.'.join(l)
donne
h.h.a.y.t
Autre exemple avec un chiffre dans la phrase :
s = 'Hello, how are you today, 1234'
l = re.findall(r'\b([a-zA-Z]|\d+)', s)
pour ne sélectionner que des lettres une solution consiste à utiliser isalpha() :
l = [e.lower() for e in l if e.isalpha()]
print( l )
donne
['h', 'h', 'a', 'y', 't']
Sans utiliser une expression régulière
Une autre solution utilisant uniquement une "list-comprehension" :
s = 'Hello, how are you today, 1234'
l = [e[0].lower() for e in s.split()]
print( [e[0].lower() for e in l if e.isalpha()] )
donne
['h', 'h', 'a', 'y', 't']