2016-05-31 2 views
0

Bonjour, je suis nouveau dans la regex et je commence avec Python. Je suis bloqué à extraire tous les mots d'une phrase en anglais. Jusqu'à présent, j'ai:regex Python pour trouver tous les mots dans une chaîne

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', 'ce', 'ont', 'vous']

Si je remplace par regex

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

puis sortie:

[ 'bonjour', 'seattle', 'ce', 'avez', 'vous', 'A', '']

alors que je veux que cette sortie

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

Veuillez me signaler où je me trompe.

Répondre

2

Utiliser mot frontière \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']