因此,我尝试创建一个正则表达式,以包含一个文本的课程内容,但不包括后面跟一个句点和一些文本的3位数字。基本上,我尝试将课程文本划分为单独的课程行,这样我就得到了一个数组,其中每个元素都有一个类的courseinfo。
例如,假设我们有:
$text = "295。学生发起的课程或项目。(1-2)对完成一年级课程的学生开放。临床工作、实地工作、法律援助、个人研究和写作、为专业期刊、学生授课课程或其他严肃的、具有教育性质的法律项目写作或编辑。需要获得法律第295管理员和院长的批准。296。法律论文。(8-13)“
还有这个巨大的正则表达式:
$lineDelimiter = ='/(?:[0-9]{3}(?:\.5|\-[1-5])?[A-Z]?)(?:\-[0-9]{3}(?:\.5|\-[0-9])? [A-Z]?)?\.\s*.+\.\s*(?:(?:\([0-9]+\-*[0-9]*\))(?:\s*or\s*\([0-9]+\-*[0-9]*\))?)?\s*(?:Prerequisite)?.+(?:\n.+)?\.\n?(?:\s*Mr\.\s.+,?|\s*Ms\.\s.+,?|\s*Dr\.\s.+,?|\s*The\sFaculty.*,?)*[^(?:[0-9]{3}\..+)]/';
这个巨大的正则表达式的最后一部分,它包含
'/[^(?:[0-9]{3}\..+)]/'
当I preg_match_all时出现错误。
我试着排除"296.法律论文。(8-13)“部分,这样它就会
295 .学生发起的课程或项目。(1-2)对完成第一年课程的学生开放。临床工作、田野工作、法律援助、个人研究和写作、为专业期刊、学生授课课程或其他严肃的教育性质的法律项目写作或编辑。需要获得第295号法律管理人和院长的批准。
发布于 2013-03-21 05:25:53
如果您想要将除最后一部分以外的所有内容与数字和文本进行匹配,您可以尝试这样做:
'/([\s\S]+)(?=\d{3}\..+)/'
[\s\S]+
可以匹配所有内容-空格和non-whitespace(?=)
都可以执行Positive Lookahead
。它与方括号中的内容不匹配,但它确保方括号前的内容后跟brackets.\d{3}\..+
中的内容匹配3位数字,后跟一个点和其他一些不带新行的字符。https://stackoverflow.com/questions/15534979
复制相似问题