Это кажется нормальным: http://docs.python.org/howto/regex.html#regex-howto Просто просмотрите его, попробуйте несколько примеров.Регулярные выражения немного сложны (в основном это немного язык программирования) и требуют некоторого времени для изучения, но их очень полезно знать.Просто экспериментируйте и делайте один шаг за раз.
(да, я мог бы просто дать вам ответ, но рыба, человек, учите)
...
какзапросил решение, когда вы не используете решение split (): итерируйте по строкам и проверяйте для каждой строки:
p = re.compile('\d+\.\s+(\w+)\s+(\w+)\s+-\s+(\d+)')
m = p.match(the_line)
// m.group(0) will be the first word
// m.group(1) the second word
// m.group(2) will be the firstnumber after the last word.
The regexp is :<some digits><a dot>
<some whitespace><alphanumeric characters, captured as group 0>
<some whtespace><alphanumeric characters, captured as group 1>
<some whitespace><a '-'><some witespace><digits, captured as group 2>
это немного строго, но таким образом вы поймаете несоответствующие линии.