【问题标题】:Regex for extracting names of colleges, universities, and institutes?用于提取学院、大学和机构名称的正则表达式?
【发布时间】:2011-05-09 15:33:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: regex web-scraping


    【解决方案1】:

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

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

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


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

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

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

    这应该得到关键字前面的所有相关词。

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 1970-01-01
      • 2013-02-17
      • 2018-07-20
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      相关资源
      最近更新 更多