网页抓取 - 用于提取学院、大学和研究所名称的正则表达式



我在文件中有一堆这样的字符串:

M.S., Arizona University, Tucson, Az., 1957
B.A., American International College, Springfield, Mass., 1978
B.A., American University, Washington, D.C., 1985

我想提取塔夫茨大学、美国国际学院、美国大学、马萨诸塞大学等,但不包括高中(可以安全地假设,如果它包含"学院"或"高中",那就是一所高中)。有什么想法吗?

在 PHP 中使用preg_match_all进行测试,将适用于您提供的示例文本:

 /(?<=,)[ws]*(College|University|Institute)[^,d]*(?=,|d)/

如果您的正则表达式引擎不支持前瞻/后视,则需要进行一些修改。


更新

:我查看了您链接的示例文本并相应地更新了正则表达式

 /([A-Z][^s,.]+[.]?s[(]?)*(College|University|Institute|Law School|School of|Academy)[^,d]*(?=,|d)/

第一部分将匹配以大写字母开头的字符串,可以选择后跟.。然后是一个空格,然后是一个可选的(.此模式匹配零次或多次。

这应该在关键字之前获取所有相关单词。

最新更新