2013-07-02 3 views
1

Я пытаюсь разобрать строки из текста, извлеченного из PDF. Выделенный текст получается плохо отформатированным и в одной длинной строке на странице. Нет никаких полезных разделителей, но строки начинаются с одной из двух строк. Я установил Split(), используя строковый массив с обеими этими строками, но мне нужно знать, какой разделитель разделили элементы.Как определить, какая строка разделителя была разделена на

Я нашел this link, но я не так хорош в RegEx. Может ли кто-нибудь помочь в написании строки RegEx?

var lineItems = page.PageText.Split(new string[] { "First String Delimiter", "Second String Delimiter" }, StringSplitOptions.None); 

Что мне нужно знать, если элемент [х] было результатом «Первого струнного Разделитель» или «второй строки Разделитель».

EDIT: Мне не важно, является ли Regex решением. Linq может быть одинаково подходит. Линк не выходил, пока я не получил свои степени, поэтому я тоже не знаком с ним.

Представьте себе, что страница с примерно 15-20 из этих концов до конца возвращается как одна длинная строка без возврата каретки: поскольку все они начинаются с «Корпоративный кредитный платеж по оплате» или «Предоплаченный аккредитив ACH», я могу разделить на но мне нужно знать, что это за тип.

Preauthorized ACH Кредит (165) 10,000.00 489546541 0000000000 Текст Некоторые длинное описание о transaction- Preauthorized ACH кредит (165) 5,310.99 8465498461 0000000000 Текст Другой длинное описание корпоративной торговли Оплата кредита (165) 4,933.17 8478632458775 0000000000 Текст Другой конфиденциальными строка описания ,

+1

Приведите несколько примеров, пожалуйста. –

ответ

1

Иногда самые простые решения являются лучшими. Не знаю, почему это не произошло раньше.

var pageText = page.PageText.Replace("Corporate Trade Payment", "\r\nCorporate Trade Payment").Replace("Preauthorized ACH Credit", "\r\nPreauthorized ACH Credit"); 

Это дает мне позиции на их собственных линиях. Нет необходимости в Regex. Благодарим вас за помощь, и если вы найдете путь к исходному вопросу с Regex, отправьте сообщение. Я всегда буду учиться больше.

+0

Затем вы должны принять свой собственный ответ ... – EFrank

1

Почему бы вам просто не запустить раскол дважды, один раз с первым разделителем, а затем со вторым разделителем?

var firstDelimiterItems = page.PageText.Split("First String Delimiter"); 

var secondDelimiterItems = page.PageText.Split("Second String Delimiter"); 
+0

Что я должен делать, но я хотел бы, если бы это было возможно, иметь каждую позицию в своем элементе с самого начала. –

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