Здесь RE основе и струнные версии на базе:
import re
def bystr(text):
words = text.split()
index = words.index('version') + 1
return words[index]
def byre(text, there=re.compile(r'version\s+(\S+)')):
return there.search(text).group(1)
m = 'Some Text That exists version 1.0.41.476 Fri Jun 4 16:50:56 EDT 2010'
if __name__ == '__main__':
print bystr(m)
print byre(m)
(запустить в качестве основного сценария, чтобы подтвердить, что они возвращают один и тот же результат - строку, а не кортеж как существующий ответ своеобразно шоу), а вот время каждого (на моем медленном ноутбуке):
$ python -mtimeit -s'import are' 'are.bystr(are.m)'
100000 loops, best of 3: 4.29 usec per loop
$ python -mtimeit -s'import are' 'are.byre(are.m)'
100000 loops, best of 3: 3.25 usec per loop
Хотя RE часто имеет плохую репутацию в сообществе Python, даже этот простой пример показывает, что, в случае необходимости, они могут быть фа чем простые манипуляции с строкой - в этом случае версия RE занимает всего около 3/4 времени, которое берет строка.