Выбрать третье слово из строки, регулярные выражения

Есть такая строка:

string = "Прикрепление #1 doc vk.com/doc111111111_1111111111 (111111111_1111111111.ogg https://psv2.userapi.com/d/a1/afsg/asdwegesgsdffasdagrfehseferwgeXzMmuGqFlYrsaOSHvE3lzZmEQpfUAGahFoDDjV.ogg)"

из которой необходимо достать третье слово doc.

Моих сил в регулярных выражениях хватило чтобы только выбрать первые три слова:

regex = "^[А-я]+\s+#\d+\s[A-z]+"

Вывод:

Прикрепление #1 doc

Как отделить от этой строки необходимое слово?


Ответы (1 шт):

Автор решения: jfs

Чтобы найти третье слово, отделенное пробелом, можно str.split() использовать:

>>> n = 3; s.split(None, n)[n-1]
'doc'

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

>>> import re
>>> re.match(r"(\S+\s+){3}", s)[1]
'doc '

Это ожидает, что есть пробел после 3го слова—легко убрать это требование при желании.

→ Ссылка