Quel est le meilleur moyen de diviser une chaîne telle que "HELLO there HOW are YOU"
en mots majuscules (en Python)?
Je finirais donc avec un tableau comme celui-ci: results = ['HELLO there', 'HOW are', 'YOU']
MODIFIER:
J'ai essayé:
p = re.compile("\b[A-Z]{2,}\b")
print p.split(page_text)
Cela ne semble pas fonctionner, cependant.
Vous pouvez utiliser un lookahead:
re.split(r'[ ](?=[A-Z]+\b)', input)
Cela se scinde à chaque espace suivi d'une chaîne de lettres majuscules qui se terminent par une limite de Word.
Notez que les crochets sont uniquement destinés à la lisibilité et pourraient également être omis.
S'il est suffisant que la première lettre d'un mot soit en majuscule (donc si vous souhaitez également vous séparer devant Hello
également), cela devient encore plus simple:
re.split(r'[ ](?=[A-Z])', input)
Maintenant, cela se scinde à chaque espace suivi d'une lettre majuscule.
Vous n'avez pas besoin de scission, mais plutôt de trouver:
re.findall(r'[A-Z]+[^A-Z]*', str)
Votre question contient le littéral de chaîne "\b[A-Z]{2,}\b"
, mais ce \b
signifiera un retour arrière, car il n'y a pas de modificateur r.
Essayez: r"\b[A-Z]{2,}\b"
.