powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Выкорябывание цены из строки. Нужна помощь с регуляркой
4 сообщений из 4, страница 1 из 1
Выкорябывание цены из строки. Нужна помощь с регуляркой
    #39456731
eualexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,
Бьюсь над задачей все никак. функция написана но на каких то значениях выдает не то что нужно.
суть приходят прайсы в формате xls, проблема со значениями в колонке цена. каждый пляшет как хочет. вариант отображения зависит от настроек типа данных в ячейке. на примере стоимости 1000 может быть

1 000
1,000
1 000,00
1 000,00 руб.
1,000.00 р.
и т.д. вариантов масса.

Задача нужно в переменную затолкать именно 1000 не зависимо от входного варианта.
Код: php
1.
$pr =preg_replace("/[^,0-9]/", '', $sellerPrice);


при входе из 1 000,00 руб. получает вообще 1,000

Я уже мозги сломал особенно на вышеприведенном варианте почему выходит 1 я никак не пойму. помогите пожалуйста.
Спасибо.
...
Рейтинг: 0 / 0
Выкорябывание цены из строки. Нужна помощь с регуляркой
    #39456841
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eualexey,
если копейки всегда по нулям, то
Код: php
1.
$pr = preg_replace('#\D(?:00\D*$)?#', '', $sellerPrice);
...
Рейтинг: 0 / 0
Выкорябывание цены из строки. Нужна помощь с регуляркой
    #39459071
eualexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,

Спасибо тебе добрый человек!!!
немного изменил, все идеально работает НО! я так и не понял почему работает и что вообще если на человеческий язык переводить написано в регулярке

Код: php
1.
preg_replace('#\D(?:\d{0,2}\D*$)?#', '', $price);



в результате что ни скармливай выдает то что нужно
Примеры ключ - то что скармливолось, значение - результат обработки регулярки
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Array
(
    [1000] => 1000
    [1000.] => 1000
    [1000,00] => 1000
    [1000.00] => 1000
    [1.000,00] => 1000
    [1,000.00] => 1000
    [1000 руб] => 1000
    [1000,00 руб] => 1000
    [1000.00 руб] => 1000
    [1.000,00 руб] => 1000
    [1,000.00 руб] => 1000
    [1000 руб.] => 1000
    [1000,00 руб.] => 1000
    [1000.00 руб.] => 1000
    [1.000,00 руб.] => 1000
    [1,000.00 руб.] => 1000
    [1000,23 руб.] => 1000
    [1000.14 руб.] => 1000
    [1.000,24 руб.] => 1000
    [1,000.23 руб.] => 1000
    [1000,3 руб.] => 1000
    [1000.4 руб.] => 1000
    [1.000,4 руб.] => 1000
    [1,000.2 руб.] => 1000
    [231000 руб.] => 231000
    [2221000,3 руб.] => 2221000
    [321000.4 руб.] => 321000
    [13.3400,4 руб.] => 133400
    [112,020.2 руб.] => 112020
    [1,000.23 руб] => 1000
    [1000,3 руб] => 1000
    [1000.4 руб] => 1000
    [1.000,4 руб] => 1000
    [1,000.2 руб] => 1000
    [231000 руб] => 231000
    [2221000,3 руб] => 2221000
    [321000.4 руб] => 321000
    [13.3400,4 руб] => 133400
    [112,020.2 руб] => 112020
)
1
...
Рейтинг: 0 / 0
Выкорябывание цены из строки. Нужна помощь с регуляркой
    #39459201
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eualexey,
Код: php
1.
2.
3.
4.
5.
6.
7.
\D                  // нечисловой символ
(?:                 // группа, не добавляемая в массив matches
    \d{0,2}         // ни одной, одна или две цифры
    \D*             // ноль или более нечисловых символов
    $               // конец строки
)
?                   // ни одного или один предшествующий элемент, аналог (.....){0,1}
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Выкорябывание цены из строки. Нужна помощь с регуляркой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]