Я работаю над регулярным выражением, которое будет извлекать ключевые слова и имена пользователей из твитов. вот пример, с довольно страшном регулярным выражением, чтобы сделать работу:регулярное выражение python для ретвитов
tweet='foobar [email protected], @two: @three barfoo'
m=re.search(r'(RT|retweet|from|via)\b\W*@(\w+)\b\W*@(\w+)\b\W*@(\w+)\b\W*',tweet)
m.groups()
('RT', 'one', 'two', 'three')
, что я хотел бы это конденсироваться повторяющиеся \b\W*@(\w+)\b\W*
образцов и сделать их из переменного числа, так что если @four были добавлены после того, как @ три, он также будет извлечен. Я пробовал много перестановок, чтобы повторить это с +
безуспешно.
я также хотел бы, чтобы это работало на что-то вроде
tweet='foobar [email protected], RT @two: RT @three barfoo';
, которая может быть достигнута с re.finditer если узоры не перекрывают друг друга. (у меня есть версия, где шаблоны накладываются друг на друга, и поэтому снимается только первый RT).
всякая помощь с благодарностью. Благодарю.
Я думаю, что на это можно ответить здесь: http://stackoverflow.com/questions/558105/string-separation-in-required-format-pythonic-way-with-or-wo-regex –
Нм, это только частичные ответы из-за требования здесь для RT/retweet, извините. –
спасибо за то, что передали это вместе - хотя только частичный ответ, определенно полезный! – jhofman