У меня есть несколько строк, например:
s = 'Albany To Westgate Via Riverhead'
Все строки имеют форму «X To Y Via Z» или «X To Y».
Я хочу извлечь Y, в примере "Westgate" из строк.
Я не могу просто сделать
re.match('\w+ To (w*) Via w*',s).group(1)
, потому что "Via" может или не может существовать ...
Например, я написал:
re.match('\w+ To (.+(?=\sVia .*$)?)',s).group(1)
, но это возвращает 'Westgate Riverhead', и я не понимаю, почему ~ что-то после via должно быть захвачено в группе 2 и не должен отображаться.
Кроме того, re.match('\w+ To (.+(?=\sVia .*$)?)',s).group(2)
не возвращает ничего - что означает, что по какой-то причине группа 2 не соответствует чему-либо?
Любая помощь будет оценена