我在文件中有一堆这样的字符串:
M.S., Arizona University, Tucson, Az., 1957
B.A., American International College, Springfield, Mass., 1978
B.A., American University, Washington, D.C., 1985
我想提取塔夫斯大学,美国国际学院,美国大学,马萨诸塞大学等,但不是高中(如果它包含“学院”或“高中”那么可能是安全的假设这是一所高中)。有什么想法吗?
答案 0 :(得分:2)
在PHP中使用preg_match_all
进行测试,将适用于您提供的示例文本:
/(?<=,)[\w\s]*(College|University|Institute)[^,\d]*(?=,|\d)/
如果您的正则表达式引擎不支持前瞻/后视,则需要进行一些修改。
更新:我查看了您的链接示例文字&amp;相应地更新了正则表达式
/([A-Z][^\s,.]+[.]?\s[(]?)*(College|University|Institute|Law School|School of|Academy)[^,\d]*(?=,|\d)/
第一部分将匹配以大写字母开头的字符串,可选地后跟.
。然后是一个空格,然后可选择(
。此模式匹配零次或多次。
这应该得到关键词之前的所有相关词。