Я пишу скрипт для синтаксического анализа LinkedIn-CV. Я застрял в разделе опыта работы. В настоящее время я могу извлечь текст опыта работы из PDF. Но у меня проблема с ключом местоположения, поскольку он не является обязательным.
Array
(
[0] => Company 1
[1] => Software Engineer
[2] => July 2020 - Present (1 month)
[3] => Pretoria, Gauteng, South Africa //this key is optional
[4] => Company 2
[5] => CTO
[6] => September 2016 - Present (3 years 11 months)
[7] => Pretoria, South Africa //this key is optional
)
Формат следующий:
- Название компании - обязательно
- Должность - Обязательный
- Продолжительность работы - Обязательный
- Местоположение - Необязательно
Я пробовал использовать array_chunk($array, 4);
Но это работает только в том случае, если местоположение присутствует в массиве.
Моя другая попытка заключалась в поиске присутствия страны во всем массиве, но это сложно, поскольку названия некоторых компаний содержат страны. например, MTN - Южная Африка.
Моя последняя попытка - попытаться написать регулярное выражение для проверки шаблона местоположения. LinkedIn анализирует его как City, Province, Country
для Южной Африки. Но для других стран он разбирается как City, Country
. Но я не смог правильно это понять. Я пробовал preg_match('#\((,*?)\)#', $value, $match)
, где $value
- значение строки для текущей итерации
Я хотел бы иметь массив для каждого опыта работы, который мог бы включать местоположение или нет. Например:
Array
(
[0] => Array
(
[0] => Company 1
[1] => Software Engineer
[2] => July 2020 - Present (1 month)
[3] => Pretoria, Gauteng, South Africa
)
[1] => Array
(
[0] => Company 2
[1] => CTO
[2] => September 2016 - Present (3 years 11 months)
[3] => Pretoria Area, South Africa
)
)
Я ценю вашу помощь.
РЕДАКТИРОВАТЬ:
Основная строка (опыт работы)
$string = 'Company 1 Software Engineer July 2020 - Present (1 month) Pretoria, Gauteng, South Africa Company 2 CTO September 2016 - Present (3 years 11 months) Pretoria Area, South Africa';
$array = splitNewLine($string);
function splitNewLine($text) {
$code = preg_replace('/\n$/', '', preg_replace('/^\n/', '', preg_replace('/[\r\n]+/', "\n", $text)));
return explode("\n", $code);
}