В Rubular, я создал регулярное выражение:Разница в регулярном выражении между Python и Rubular?
(Prerequisite|Recommended): (\w|-|)*
Это соответствует Bolded:
Рекомендовано: хороший уровень комфорта с компьютерами и некоторые из искусств.
Летом. 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()
?
http://pythex.org/ говорит, что регулярное выражение совпадает с этой строкой, даже с использованием механизма Python, поэтому проблема заключается в том, как вы используете регулярное выражение (я не знаю Python). – Gareth
Кроме того, я лично обновите свое регулярное выражение до '(Предварительное условие | Рекомендованное): ([\ w -] *)', чтобы вы могли лучше отобразить оставшуюся часть совпадения. (См. Http://rubular.com/r/5v7u66vc1M) – Gareth