Пример строки в файле: «CIS 14A Visual Basic .NET Programming I x x x x»
Я пытаюсь сгруппировать строки в файле в три группы: group (0) должен быть номером курса (14A), group (1) должен быть темой (Visual Basic .NET Programming I), и group ( 2) должны быть кварталы, в которых доступен курс. Однако, когда я тестировал код, группа (0) соответствовала всей строке, группа (1) была курсом №, группа (2) была пустой ... и группа (3) была комбинация темы и доступных кварталов. Я не могу найти, что с ним не так, потому что каждый набор скобок создает группу, но все группы расположены в неправильном порядке, и «CIS», который я не включил ни в одну скобку, был включен в группу (0) по какой-то причине. Я новичок в regex, поэтому любые советы о том, как исправить мой код, будут высоко оценены.
with open(filename) as infile:
for line in infile:
self._match = (re.search('^CIS\s(\d*\w*)(\w*)\s?[^x]*(.*)$', line, re.I))
self._numb = self._match.group(0).strip()
self._name = self._match.group(1).strip()
self._quarter=self._match.group(2).strip().split('x')