Я работаю над регулярным выражением, которое будет извлекать ретвиты ключевых слов и имен пользователей из твитов. Вот пример с довольно ужасным регулярным выражением для выполнения работы:
tweet='foobar RT@one, @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 были добавлены после @three, они также были бы извлечены. Я пробовал много перестановок, чтобы повторить это с +
безуспешно.
Мне бы тоже хотелось, чтобы это работало на что-то вроде
.
tweet='foobar RT@one, RT @two: RT @three barfoo';
, что может быть достигнуто с помощью re.finditer , если шаблоны не перекрываются. (У меня есть версия, в которой шаблоны перекрываются, и поэтому выбирается только первый RT.)
любая помощь очень ценится. спасибо.