Код: Выделить всё
(?.+) (?{summai}) (?
{summai}) (?{summai})
определяются Regex
Код: Выделить всё
-?[0-9]{1,3}(?:[ ,.]?[0-9]{3})*[.,]?[0-9]{0,2}
< /code>
Суммы содержат отдельное пространство в качестве разделителя тысяч, если значение больше 999,99. Также может не содержать пространство, 1 000.00
Например, из строки
Код: Выделить всё
item 1 1 000.23 200.00 10 500.00
< /code>
Результат извлечения должен быть < /p>
description item 1
quantity 1 000.23
price 200.00
total 10 500.00
< /code>
используется regex: < /p>
(?.+) (?-?[0-9]{1,3}(?:[ ,.]?[0-9]{3})*[.,]?[0-9]{0,2}) (?
-?[0-9]{1,3}(?:[ ,.]?[0-9]{3})*[.,]?[0-9]{0,2}) (?{-?[0-9]{1,3}(?:[ ,.]?[0-9]{3})*[.,]?[0-9]{0,2}})$
< /code>
Это должно работать - но не возвращает никаких совпадений. $ должен заставлять начать сопоставление с конца строки и соответствовать как можно более майским символам.(?.+) (?-?[0-9]{1,3}(?:[ ,.]?[0-9]{3})*[.,]?[0-9]{0,2})$
Как извлечь суммы из конца строки? PDFPIG возвращает 1 000.00 как два разных токена, 1 и 000.00 Как заставить PDFPIG вернуть один токен 1 000.00 . В этом случае regex работает. Это опубликовано в том, как извлечь целое число как единственный токен из PDF
Подробнее здесь: https://stackoverflow.com/questions/796 ... -separator