【发布时间】:2010-05-09 22:24:31
【问题描述】:
在 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()吗?
【问题讨论】:
-
pythex.org 表示即使使用 Python 引擎,正则表达式也会匹配该字符串,所以问题在于您如何使用正则表达式(我不知道 Python)
-
另外,我个人会将您的正则表达式更新为
(Prerequisite|Recommended): ([\w -]*),这样您就可以更好地捕捉比赛的其余部分。 (见rubular.com/r/5v7u66vc1M)