Вы можете использовать регулярное выражение!
import re
my_string = # your string from above
pattern = r"\(\d\s+('?\w+)"
results = re.findall(pattern, my_string)
print(results)
# ['The',
# 'Rock',
# 'is',
# 'destined',
# 'to',
# 'be',
# 'the',
# ...
Обратите внимание, что re.findall
вернет список совпадений, поэтому, если вы хотите распечатать их все в одном предложении, выможно использовать:
' '.join(results)
или любой другой символ, с которым вы хотите разделить слова вместо пробела.
Если разбить шаблон регулярного выражения, мы получим:
pattern = r"""
\( # match opening parenthesis
\d # match a number. If then numbers can be >9, use \d+
\s+ # match one or more white space characters
( # begin capturing group (only return stuff inside these parentheses)
'? # match zero or one apostrophes (so we don't miss posessives)
\w+ # match one or more text characters
) # end capture group
"""