web-dev-qa-db-fra.com

Python regex pour trouver tous les mots dans une chaîne

Bonjour, je suis nouveau dans regex et je commence avec python. Je suis coincé à extraire tous les mots d'une phrase en anglais. Jusqu'à présent, j'ai:

import re

shop="hello seattle what have you got"
regex = r'(\w*) '
list1=re.findall(regex,shop)
print list1

Cela donne une sortie:

["bonjour", "seattle", "quoi", "avoir", "vous"]

Si je remplace regex par

regex = r'(\w*)\W*'

puis sortez:

['bonjour', 'seattle', 'quoi', 'avoir', 'vous', 'got', '']

alors que je veux cette sortie

['bonjour', 'seattle', 'quoi', 'avoir', 'vous', 'got']

Veuillez m'indiquer où je vais mal.

8
TNT

Utiliser la limite de mot \b

import re

shop="hello seattle what have you got"
regex = r'\b\w+\b'
list1=re.findall(regex,shop)
print list1

OP : ['hello', 'seattle', 'what', 'have', 'you', 'got']

ou simplement \w+ est assez

import re

shop="hello seattle what have you got"
regex = r'\w+'
list1=re.findall(regex,shop)
print list1

OP : ['hello', 'seattle', 'what', 'have', 'you', 'got']
9
Pranav C Balan