Regex для извлечения названий колледжей, университетов и институтов? - PullRequest
0 голосов
/ 09 мая 2011

У меня есть несколько таких строк в файле:

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

, и я хотел бы извлечь Университет Тафтса, Американский международный колледж, Американский университет, Университет Массачусетса и т. Д., Но несредние школы (вероятно, можно предположить, что если в нем есть «Академия» или «Средняя школа», то это средняя школа).Есть идеи?

1 Ответ

2 голосов
/ 09 мая 2011

Протестировано с preg_match_all в PHP, будет работать для предоставленного вами образца текста:

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

Необходимо будет несколько изменить, если ваш движок регулярных выражений не поддерживает lookaheads / lookbehinds.1006 *

Обновление: я посмотрел на ваш связанный образец текста и соответственно обновил регулярное выражение

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

Первая часть будет соответствовать строке, начинающейся с заглавной буквы, за которой может следовать ..Затем пробел, затем, необязательно, (.Этому шаблону соответствует ноль или более раз.

Это должно получить все релевантные слова, предшествующие ключевым словам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...