2016-05-31 7 views
0

Здравствуйте, я новичок в регулярном выражении, и я начинаю с python. Я застрял в извлечении всех слов из английского предложения. До сих пор у меня есть:Python regex для поиска всех слов в строке

import re 

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

Это дает выход:

[ 'привет', 'сиэттл', 'что', 'есть', 'вы']

Если я заменить регулярное выражение на

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

затем выход:

[ 'привет', 'сиэттл', 'что', 'есть', 'ты', 'есть', '']

а я хочу этот выход

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

Пожалуйста, укажите мне, где я иду не так.

ответ

2

Использование граница слова \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'] 

или просто \w+ достаточно

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