Подскажите по reg_replace

Тема в разделе "Как сделать...", создана пользователем one, 25 янв 2014.

  1. one

    one

    Регистр.:
    22 июн 2011
    Сообщения:
    409
    Симпатии:
    41

    Если я правильно понимаю, то эта строка удаляет десятичный разедлитель (.) Подскажите, как подправить что бы удаляла тысячный разделитель пробел?
     
  2. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.463
    Симпатии:
    114
    попробуйте так:
    Код:
    $priced = preg_replace('/^USD\&nbsp\;([0-9]+(\.\s[0-9]+))?$/i', 'price_back', $c); 
    хотя... не понимаю, что есть, как выводит результат. Что за price_back и $c
     
  3. one

    one

    Регистр.:
    22 июн 2011
    Сообщения:
    409
    Симпатии:
    41
    Вот исходное значение USD 10 000.00.

    Мне важно в этой сроке подправить. price_back и $c не важно пока...

    Не помогло...
     
    Последнее редактирование модератором: 1 фев 2014
  4. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.463
    Симпатии:
    114
    этот паттерн описывает шаблон. А $c - то, где искать. А
    price_back - что подставлять. Хотя не понятно, что это такое. Это же не переменная? В ней нужно разбираться.
     
  5. jDony

    jDony Создатель

    Регистр.:
    25 янв 2014
    Сообщения:
    41
    Симпатии:
    40
    Регулярка:
    PHP:
    preg_replace("/([\d])[\D]/i""$1"$input_lines);
    На входе:
    На выходе:
    Оно?
    Если нет, то задавай вопрос более конкретно:
    - Что на входе?
    - Что необходимо получить на выходе?
     
  6. one

    one

    Регистр.:
    22 июн 2011
    Сообщения:
    409
    Симпатии:
    41
    Почти оно, спасибо!

    На входе:
    На выходе:
    Если я правильно понимаю текущее выражение:

    Код:
    $priced = preg_replace('/^USD\&nbsp\;([0-9]+(\.\s[0-9]+))?$/i', 'price_back', $c); 
    имеем:
     
  7. jDony

    jDony Создатель

    Регистр.:
    25 янв 2014
    Сообщения:
    41
    Симпатии:
    40
    Все равно не понятно что тебе нужно.

    Регулярка:
    PHP:
    preg_replace("/[^\d\.]/i"""$input_lines);
    На входе:
    На выходе:
    Регулярка:
    PHP:
    preg_replace("/[\D]/i"""$input_lines);
    На входе:
    На выходе:
     
  8. one

    one

    Регистр.:
    22 июн 2011
    Сообщения:
    409
    Симпатии:
    41
    Не силен я в регулярных выражениях. Ну вот попробую еще раз. :)

    Из этого:
    Код:
    ('/^USD\&nbsp\;([0-9]+(\.\s[0-9]+))?$/i', $input_lines)
    Эту часть в выражении оставить.
    Код:
    ('/^USD\&nbsp\;
    и тогда из
    получить
     
  9. Errorme

    Errorme Писатель

    Регистр.:
    4 авг 2012
    Сообщения:
    0
    Симпатии:
    0
    preg_replace("/[^\d\.]/i", "", $input_lines);