Я получаю текстовую строку из отсканированной квитанции. Вот пара примеров:
George’s Restaurant 300 72th Street, Майами-Бич, fl 33141 305-864-5586 Сервер: Рональд 19.01.2013 Таблица 20/1 22:53 Гости: 1 10062 Перепечатка #: 1 Ferrari Carano Insalate Чезаре Капрезе с прошутто FISH SPEC Шпинат Рикотта Равиоли Паста с морепродуктами Ossobucco 47,00 7,50 9,50 25,95 15,95 19,95 29,95 Общая сумма налога 155.80 14.02 Итого 169.82 169.82 Задолженность Сальдо БЕЗ ВКЛЮЧЕНО !!! Спасибо за ваш бизнес
Как мне определить общую сумму в каждом случае (169,82 и 52,88)?
Я думал, что могу удалить все нечисловые символы, разделить оставшиеся на массив и искать самые большие. Но это может привести к путанице с адресом и номерами телефонов. Я полагаю, мне нужно убедиться, что слово TOTAL, SUB-TOTAL или AMOUNT DUE находится рядом.
Какие-либо предложения? Благодарю.
Другой пример:
933 ece tur New OrlerS LA 70116 504.:25.1602 wwwfranksresta.ratnewor leans.com 219 КАТИ У ЧЕ 1750 Feb03’1 (7: -2PM Tbl 6/1 Gst 4 1 GARLICBREAD 2 Диета 2 Чай со льдом 2 ВКУС НЕТ 1 Цельная мука 1 Альфредо 3,95 6,00 6,00 33,90 14,95 14,95 Налог на продукты питания ИТОГО 79,75 7,78 87,53
ОБНОВИТЬ:
Похоже, мне нужно изучить нейронные сети, чтобы решить эту проблему.
Попробуй это:
<?php
function checktotal($rcpt) {
if (preg_match_all('/(\d+\.\d{2})(?:\D|$)/', $rcpt, $match))
echo 'Total is $' . max($match[1]) . "\n";
else echo "No numbers!\n";
}
$rcpts = [
"George's Restaurant 300 72th Street Miami Beach fl 33141 305-864-5586 Server: Ronald 01/19/2013 Table 20/1 10:53 PM Guests: 1 10062 Reprint #: 1 Ferrari Carano Insalate Cesare Caprese with prosciutto FISH SPEC Spinach Ricotta Ravioli Seafood Pasta Ossobucco 47.00 7.50 9.50 25.95 15.95 19.95 29.95 Sub Total Tax 155.80 14.02 Total 169.82 169.82 Balance Due GRATUITY NOT INCLUDED!!! Thank you for your business",
"SUSHI HARA 8701 W PARMER LANE STE 2128 AUSTIN, TX 78729 123835218 ORDER: A9 Dine-in 25-Jan-2018 6 10 53 1 다tASHU DON SHRIMP TEMPURA (3PCS HARU COMBO SALMON ROLL $11.95 $8.95 $20.00 $7.95 to go Subtotal $48.85 $4.03 S52.88 Tax Total Order 05852ZSBGOW4M Thank you for dining at Sushi Hara",
"933 ece tur New OrlerS LA 70116 504.:25.1602 wwwfranksresta.ratnewor leans.com 219 KATHY U che 1750 Feb03'1 (7:-2PM Tbl 6/1 Gst 4 1 GARLICBREAD 2 Diet 2 Iced Tea 2 TASTE OF NO 1 Whole Muff 1 Alfredo 3,95 6.00 6.00 33.90 14.95 14.95 Food Tax TOTAL DUE 79.75 7.78 87.53"];
foreach ($rcpts as $rcpt) checktotal($rcpt);
Вывод для вашей тестовой группы:
Total is $169.82
Total is $52.88
Total is $87.53
Других решений пока нет …