разбор абзацев и вставка их в виде записи БД

Я пытаюсь вставить записи в базу данных mysql. У меня есть текстовый файл с несколькими абзацами, один абзац должен быть одной записью БД.

моя база данных имеет 5 столбцов - профессия, опыт, отдел, застрахованный, примечания

мой текстовый файл имеет следующий формат: у меня есть код Perl, который просматривает каталог, в котором хранятся эти текстовые файлы. Проблема в том, что может быть два значения занятия или только одно. До сих пор, когда формат имел только одно значение занятия, я начинал читать массив файлов с n-го индекса, извлекал все со смещением 5 в цикле, делая абзац записью.

Формат не изменится, это будет комбинация из двух абзацев ниже. Как я могу взять эти абзацы в массив отдельно для вставки db? Спасибо! ~ Ральф

### Start of File
Header

Occupation: Analyst3.
Experience: 7
Department: ZAD6A.
Insured: 0
Remarks: None


Occupation: Analyst2.
Occupation: Engineer-I.
Experience: 4
Department: 50021.
Insured: 0
Remarks: New Hire.

Footer
### End Of File

person user2659177    schedule 07.08.2013    source источник
comment
так что вы хотите сделать, если в файле две профессии?   -  person Alec    schedule 07.08.2013
comment
Я соединю значения профессии в поле «Род занятий» в базе данных.. спасибо за предложение Алека!   -  person user2659177    schedule 07.08.2013
comment
Так что у меня может быть что-то вроде ..TextFile1_Arr[0]={Аналитик3.,7,ZAD6A.,0,None}...TextFile1_Arr[1]={Аналитик2.:Инженер-И.,4,50021.,0, New Hire.}..и так далее для textfile2.....textfile3..и так далее.   -  person user2659177    schedule 07.08.2013


Ответы (1)


person    schedule
comment
Спасибо, Алек.. надо попробовать.. но можно ли это сделать с помощью регулярных выражений? Я заранее знаю количество блоков (количество блоков указано в имени файла). Таким образом, я могу перебирать блоки. Теперь, какое лучшее регулярное выражение может захватить блок? Начать захват с начала оккупации до тех пор, пока не встретится следующая оккупация? Верхний и нижний колонтитулы одинаковы для всех файлов. - person user2659177; 08.08.2013
comment
попробуй это $input =~ /(Occupation.+?)(?=\n{2,})/sg; - person Alec; 08.08.2013
comment
Алек.. это фиксирует только последнее занятие, пропуская все остальные занятия. - person user2659177; 08.08.2013