![]() |
Модераторы: ginnie |
![]() ![]() ![]() |
|
flame33 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Здравствуйте! Очень нужна помощь.
В какой-то части кода, который я приложил, программа ищет строку с помощью регулярного выражения, такого вида: "1|Rexton 2.7 Xdi M/T Original|1|1 049 000 |ABS (Антиблокировочная тормозная система)<br>". Выбирает от туда "1 049 000" и дописывает валюту (руб.). После получается 1049000 руб. Что нужно изменить, чтобы получалось "1 049 000 руб". (т.е. с сохранением пробелов)?
|
|||
|
||||
Jimy |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 4.7.2010 Репутация: нет Всего: 3 |
Из кода однозначно не ясно, возможно, в подпрограмме "site_money".
|
|||
|
||||
flame33 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Цена ("1 049 000") точно обозначается как price. site_money это скорее руб., т.е. валюта. Ничего не понимаю в рег.выражениях, и подправить не могу.
|
|||
|
||||
alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
13 и 59 строки кода:
В переменной $price все точки, запятые, нецифры и пробелы (там-же табуляция, переход строки и т.д.) заменяются ничем, т.е. удаляются. Попробуйте убрать из выражения \s. |
|||
|
||||
flame33 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 14.12.2010 Репутация: нет Всего: нет |
Нет, к сожалению, это не помогло. Вставил
Это сообщение отредактировал(а) flame33 - 15.12.2010, 09:57 |
|||
|
||||
alezzz |
|
||||||||||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 11 Всего: 14 |
Да, так не работает, простите не проверил. Нужно убрать не только \s но и \D.
Но тогда есть шанс что попадут левые символы, например буквы. Можно заменить на строку:
Будет удалять все кроме пробелов и цифр (!!! между "^" и "\d" пробел, хотя не думаю что между цифрами появится перевод строки или табуляция). Но число останется с теми пробелами с какими было, т. е. если ошибутся и напишут "10 49 000", то так и останется. Но мне кажется что если не удалять пробелы, то позже появятся другие проблемы:
Вывод:
А у вас в коде есть такое:
Тут $price станет равно 1. Нужно что-то менять только когда уже не будет никаких математических операций на $price Это сообщение отредактировал(а) alezzz - 15.12.2010, 14:10 |
||||||||||
|
|||||||||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |