В Rubular я создал регулярное выражение:
(Prerequisite|Recommended): (\w|-| )*
Соответствует выделенному жирным шрифтом:
Рекомендуется: хороший уровень владения компьютером и некоторыми видами искусства.
Лето. 2 кредита. Необходимое условие: репутация перед первокурсником или разрешение инструктора. Кредит не может быть применен к диплому инженера. Только оценки S-U.
Вот использование регулярного выражения в Python:
note_re = re.compile(r'(Prerequisite|Recommended): (\w|-| )*', re.IGNORECASE)
def prereqs_of_note(note):
match = note_re.match(note)
if not match:
return None
return match.group(0)
К сожалению, код возвращает None
вместо совпадения:
>>> import prereqs
>>> result = prereqs.prereqs_of_note("Summer. 2 credits. Prerequisite: pre-fres
hman standing or permission of instructor. Credit may not be applied toward engi
neering degree. S-U grades only.")
>>> print result
None
Что я здесь делаю неправильно?
ОБНОВЛЕНИЕ: нужно ли мне re.search()
вместо re.match()
?
(Prerequisite|Recommended): ([\w -]*)
, чтобы вы могли лучше зафиксировать остальную часть совпадения. (См. rubular.com/r/5v7u66vc1M) - person Gareth   schedule 10.05.2010