2015-05-21 3 views
0

Я пытаюсь разобрать таблицу открытого текста, которую я создал через PDF. Формат данных - это типичная таблица счетов. Используя pdftotext вместе с PHP, я выполнил итерацию соответствующих строк таблицы в элементах массива. Мне нужно разобрать эти элементы, разбив их на многомерный массив для вставки в базу данных.Обычный текст Табличный анализ

Ниже приведен пример некоторых данных я встречу:

 
05/18 TMobileRTR 10-100 PE Sold 5/17/2015 11:34 PM 5555556666 $75.00 8.75 % $68.44 $6.56 
05/18 T-MobileGoSmt10-100 Sold 5/18/2015 3:20 PM 7775556666 $45.00 6.00 % $42.30 $2.70 
05/18 Univision $10-100EX Sold 5/18/2015 6:23 AM 8885556666 $65.00 6.00 % $61.10 $3.90 
05/15 NET10 $50 Unl RTR Sold 5/15/2015 6:00 PM 9995556666 $50.00 8.00 % $46.00 $4.00 
05/15 RP $49.99 30D RTR Sold 5/15/2015 6:16 PM 1115556666 $49.99 8.00 % $45.99 $4.00 
05/16 Simple $40 TTD Sold 5/16/2015 1:42 PM 2225556666 $40.00 7.75 % $36.90 $3.10 

соображения:

Использование взрываются разбить его пробелом. Тем не менее, для этого необходимо, чтобы многие параметры были подвергнуты санитарной обработке.

Я экспериментировал с шаблонами регулярных выражений, чтобы выполнить это, однако это не в моих масштабах знания, чтобы выполнить это.

Моя модель Я пытался закупать это:

^(?<settlment>\d{2}[\/]\d{2})(?:\s)(?<product>.+?)(?:\s)(?<type>.+?)(?:\s)(?<transaction>\d{1-12}[\/]{1-31}[\/].[0-9]|0[0-9]|1[0-9]|2[0-3]:[0-5][0-9].+?)(?:\s)(?<control>\b\d{3}[-.]?\d{3}[-.]?\d{4}\b)(?:\s)(?<retail>[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2})(?:\s)(?<discount>[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2})(?:\s)(?<cost>[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2})(?:\s)(?<commission>[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2})$ 

Я предполагаю, что регулярное выражение является лучшим методом идти о, однако мне нужно уточнить мой шаблон.

Ниже ассоциативный пробой, чтобы мы могли понять, что я пытаюсь донести здесь:

Settlement Date => 05/18 
Product => TMobileRTR 10-100 PE 
Type => Sold 
Transaction Date/Time => 5/17/2015 11:34 PM 
Control Number => 5555556666 
Retail => $75.00 
Discount => 8.75 % 
Cost => $68.44 
Commission => $6.56 

Вот как мне нужны данные, отформатированные для реляционной вставки.

+1

Что это ожидаемый результат, что «тип» в частности? –

+1

Невозможно написать для него регулярное выражение, не понимая, что означает каждая часть каждой строки. Пожалуйста, объясни. Я думаю, что вы уточните свое регулярное выражение самостоятельно, когда попробуете объяснить смысл каждой части :) –

+0

Неясно, в чем вопрос? – kebs

ответ

0

Я изменил ваше регулярное выражение и получил его, чтобы соответствовать, однако вам, возможно, придется его доработать, чтобы извлечь нужные группы!

EDIT: обновление с точными группами предложил: http://regexr.com/3b217 enter image description here

+0

Почему проголосовать ...? Разве это не работает? –

+0

Разве я не был так ниспослан. Однако это не сработало для меня. Понятно, потому что я не правильно передал вопрос. Спасибо – user102889

+0

Вау, большое спасибо, это отлично работает! Я очень ценю ваше время. – user102889

Смежные вопросы