2014-10-24 1 views
0

У меня есть message = 'This is a private post. Cc: @me, @you.and @others,too. I @hope>this is okay'Как Cut Off Строки После Некоторых специальные символов Встречаются

Я извлек слова startswith('@') символа после перебора message.split(' ').

Это дало mentions = ['@me', '@you.and', '@others,too', '@hope>this'], что не то, что я хочу.

Нужный результат mentions = ['@me', '@you', '@others', '@hope']

Как я могу добиться этого?

ответ

2
>>> import re 
>>> x = 'This is a private post. Cc: @me, @you.and @others,too. I @hope>this is okay' 
>>> [re.search(r'(@\w+)', z).groups()[0] for z in x.split() if z.startswith('@')] 
['@me', '@you', '@others', '@hope'] 
+2

это найти слова, которые имеют @ в середине слова также –

+0

Это работает, но как я могу заменить его обратно в их положение является 'x' после манипуляций с ними? – Yax

+0

@linuxfan: Первый ответ - именно то, что я искал. – Yax

0
>>> import re 
>>> s = "This is a private post. Cc: @me, @you.and @others,too. I @hope>this is okay" 
>>> re.findall(r"(@\w+)\b", s) 
['@me', '@you', '@others', '@hope']