Comment extraire la première lettre de chaque mot d'une phrase avec python en utilisant une expression régulière ?

Published: 11 septembre 2022

Tags: Python; Regular Expression;

DMCA.com Protection Status

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']

Références