Задать вопрос
@Stas1995

Как в регулярных выражениях php заменить только символ?

$str = '2*10*30 2x10x30';

$replace=  'R';

$pattern = array('/\d+(\*)/', '/\d+(x)/');

echo preg_filter($pattern, $replace, $str);

На выходе получаю
it is RR30 RR30

а должно получится:

2R10R30 2R10R30'
  • Вопрос задан
  • 79 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@Vitsliputsli
Зачем здесь регулярка?
str_replace(['*','x'],'R','2*10*30 2x10x30');

Регулярка будет выглядить так: /\*|x/

Если же, замена нужно только для конструкций из 3 чисел соединенных * или x, то можно написать так:
preg_filter('/(\d+)[*x](\d+)[*x](\d+)/', '${1}R${2}R${3}', '2*10*30 2x10x30')
Ответ написан
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Так вы меняете всё что попадает под паттерн.
Чтобы сохранить отдельные части, следует заключить их в группу, и использовать подстановки

$string = preg_replace('/(\d+)[*x]/', '$1R', $string);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽