[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удалить все точки, кроме тех, что в цифрах.
GET
Привет.

Помогите с регуляркой, удалить все точки в строке, кроме тех, которые находятся между цифрами:

echo preg_replace("#^[[^0-9]*\.[^0-9]*]$#ui",'','f4qwe.6er4ff.eeff3.14ваа5.а');


Должно получиться: f4qwe6er4ffeeff3.14ваа5а


Спасибо.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
Исправил результат...прошу прощения.
Цитата
Должно получиться: f4qwe6er4ffeeff3.14ваа5а


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
DedMorozzz
Сложная регулярка. Действиетльно не простая. Минут 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
DedMorozzz
Дублирует символы, которые меняет....
GET
DedMorozzz

Спасибо тебе огромное! Я полдня сидел...вроде простая на перваый взгляд, а оказалось...

Если буду как-нибудь полезен всегда помогу, спасибо еще раз.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Winston
echo preg_replace("#\.(?!\d)|(?<!\d)\.#",'','f4qwe.6er4ff.eeff3.14asd5.sd');
DedMorozzz
m4a1fox, похвальная наблюдательность. Действительно не заметил. Спасибо, исправил
Сперва иначе хотел сделать, после замена так и осталась висеть

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
GET
Winston

Ну...
Ну ты...молодец!!!


m4a1fox
DedMorozzz
Winston

Спасибо, что выручаете.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.