Привет.
Помогите с регуляркой, удалить все точки в строке, кроме тех, которые находятся между цифрами:
echo preg_replace("#^[[^0-9]*\.[^0-9]*]$#ui",'','f4qwe.6er4ff.eeff3.14ваа5.а');
Должно получиться: f4qwe6er4ffeeff3.14ваа5а
Спасибо.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Исправил результат...прошу прощения.
Цитата |
Должно получиться: f4qwe6er4ffeeff3.14ваа5а |
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
DedMorozzz
8.05.2013 - 12:10
Сложная регулярка. Действиетльно не простая. Минут 15 точно на неё потратил. Держи
$a = 'f4qwe.6er4ff.eeff3.14asd5.sd';
$a = preg_replace('#(?<=([^0-9])|([0-9]))\.(?=(?(2):[0-9])|[^0-9])#iu','',$a);
echo "<pre>";print_r($a);echo "</pre>";die;
Цитата |
f4qwee6er4fffeeff3.14asd55sd |
PS: слегка поправил
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
m4a1fox
8.05.2013 - 12:26
DedMorozzz
Дублирует символы, которые меняет....
DedMorozzz
Спасибо тебе огромное! Я полдня сидел...вроде простая на перваый взгляд, а оказалось...
Если буду как-нибудь полезен всегда помогу, спасибо еще раз.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Winston
8.05.2013 - 12:28
echo preg_replace("#\.(?!\d)|(?<!\d)\.#",'','f4qwe.6er4ff.eeff3.14asd5.sd');
DedMorozzz
8.05.2013 - 12:30
m4a1fox, похвальная наблюдательность. Действительно не заметил. Спасибо, исправил
Сперва иначе хотел сделать, после замена так и осталась висеть
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Winston
Ну...
Ну ты...молодец!!!
m4a1fox
DedMorozzz
Winston
Спасибо, что выручаете.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.