Как написать регулярное выражение для текста?

Здравствуйте.

Опыта в регулярных выражениях не имею, поэтому следующий вопрос:
есть огромная база, состоящая из записей определенного формата (Дата | Кредит-Дебит | Описание). Мне надо вытащить все эти три данные. И в процессе этого сразу определить, что является Кредитом или Дебитом: Кредит расположен по середине, дебит — справа.

Пример исходника: pastebin.com/vL3GZqsN
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
/(.*)\|[\s\t]+[\s\t]+([0-9.,-]+(([\t\s]+)|))\|(.*)/gu

https://regex101.com/r/xG8mU5/3
По группам вхождений:
1-е: ДАТА
2-е: СУММА
3-е: проверяйте: непустой - значит КРЕДИТ, иначе - ДЕБИТ.
4-е: ОПИСАНИЕ
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Ну дык а чем парсить-то будете? У вас строка чудесно бъется по символу '| на три элемента' хоть той же регуляркой "^(.*?)\|(.*?)\|(.*?)$".
Если в среднем элементе справа пробелов нет - то это дебит, если есть - кредит. Можно по последнему символу проверять...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы