Мне нужно проанализировать CSV-файл, чтобы получить некоторую информацию из каждой строки (код компании, описание компании, страна), я использую preg_match в PHP для анализа файла, но у меня возникли проблемы с некоторыми строками.
Ниже некоторых строк файла csv
"ASTA","Aerospace Technologies of Australia Pty Ltd (Australia)"
"ATAC"," American Tactical Aircraft Consultants (United States)"
"ATEC"," ATEC vos (Czech Republic)"
"ATG","Aviation Technology Group Inc (United States)"
"ATLAS","Atlas Aircraft Corporation of South Africa (Pty) Ltd (South Africa)"
"ATR","GIE Avions de Transport Régional (France/Italy)"
"AUSTER","Auster Aircraft Ltd (United Kingdom)"
"AUSTFLIGHT","Austflight ULA Pty Ltd (Australia)"
"AUSTRALIAN AEROSPACE","Australian Aerospace Pty Ltd (Australia)"
"AUSTRALITE","Australite Inc (United States)"
"AUTOGYRO","AutoGyro Europe GmbH (Germany)"
"AVANTAGE","OOO Samoletstroitelynyi Kompaniya Avantazh (Russia)"
"AVCRAFT","AvCraft Aviation LLC (United States)"
"AVEKO","Aveko sro (Czech Republic)"
"AVIA (1)","Azionari Vercellese Industrie Aeronautiche (Italy)"
"AVIA (2)","Avia-Zavody Jirího Dimitrova (Czech Republic)"
Код PHP preg_match выглядит следующим образом:
preg_match('#^(.+?)\s\((.+?)\)$#',$string,$matches);
Код отлично работает со строками, подобными следующей:
"ASSO AEREI","Asso Aerei Srl (Italy)"
В приведенном выше примере я успешно получаю три данных в массив совпадений ... но со следующей строкой
"ATLAS","Atlas Aircraft Corporation of South Africa (Pty) Ltd (South Africa)"
Я получаю, как Описание компании:
Atlas Aircraft Corporation of South Africa
и как Страна:
Pty) Ltd (South Africa
Вместо них они должны быть:
Atlas Aircraft Corporation of South Africa (Pty) Ltd
и
South Africa
Еще одна проблема, которая сводит меня с ума, это: когдастроки не включают страну, как в следующей строке
"AERFER-AERMACCHI","see AERFER and AERMACCHI"
Я получаю пустой массив описания компании.
Любая помощь, чтобы исправить шаблон регулярного выражения?Большое спасибо за любую помощь