170 похожих чатов

Доброго вечера, может мне кто-то объяснить, почему так неожиданно работает

preg_replace, вот регулярочка:

preg_replace("/([\s\pP])(495)([\s\pP])/ui","$1...$3","+7 (495) 359-02-47") она делает все правильно:
+7 (...) 359-02-47

но на деле вместо точек будут цифры, то есть: "$1495$3"
в мануале по этому четко сказано - использовать ${1} и ${3}, ок, делаю:
preg_replace("/([\s\pP])(495)([\s\pP])/ui","${1}...${3}","+7 (495) 359-02-47")
и получаю:
+7 ... 359-02-47

Куда скобки делись? Кто встречался?

11 ответов

27 просмотров

вы на https://regex101.com/ отлаживать пробовали? очень удобно

Потому что надо использовать правильные кавычки, а не всегда двойные. Проверяй. preg_replace('/([\s\pP])(495)([\s\pP])/ui','${1}...${3}','+7 (495) 359-02-47')

Dimases
огромное спасибо. понял =)

ну и при разработке включай вывод ВСЕХ ошибок. Так ты бы увидел варнинги о несуществующих переменных.

Dimases- Автор вопроса
Владимир Блискун
ну и при разработке включай вывод ВСЕХ ошибок. Так...

может еще знаете, ловлю пробел после всех чисток в начале одной строки. чищу strip_tags, после этого от лишних символов и повторяющихся пробелов: $v=str_replace(["\r","\n","\t"]," ",$v); $v=preg_replace("/\s{1,}/u"," ",$v); return trim($v); но все равно на дампе у одной только строки вижу: " Выражаю свое согласие..." UTF-8 пробелы чистятся, но что это? причем, если делаю $v=preg_replace("/\s{1,}/u","",$v); то он тоже прибивается. Что за чудеса?

Dimases
может еще знаете, ловлю пробел после всех чисток в...

ты меняешь 1 и более пробелов на 1. У тебя в начале строки остается 1 пробел. Что не так?

Dimases
а trim?

скинь свой текст файлом мне в личку

Dimases- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта