Использование соответствия PHP preg_replace приводит к математической операции?

Я хочу найти число в строке, добавить к нему единицу и заменить ее. Они не работают:

$new_version = 
    preg_replace("/str/(\d+)str/", "str/".("$1"+1)."str", $original);

$new_version = 
    preg_replace("/str/(\d+)str/", "str/".(intval("$1")+1)."str", $original);

Где «str» — это очень идентифицируемая строка, каждая сторона числа (и не содержащая чисел).

Я понимаю, что могу сделать это более чем в одной строке кода довольно легко, но кажется, что это должно быть возможно.

Пожалуйста, предоставьте пример ввода и вывода, чтобы мы могли взять его оттуда. Что ожидается от вашего сценария на основе входных данных, которые вы нам предоставляете.

pr1nc3 28.01.2019 11:55

Использовать preg_replace_callback

marekful 28.01.2019 11:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
106
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Только с помощью str_replace вы можете получить номер из строки, добавить к нему единицу и заменить старый номер новым:

$str = 'In My Cart : 11 items';
$nb = preg_replace('/\D/', '', $str);
$nb += 1;
$str = str_replace($nb-1, $nb, $str);
echo $str;
Ответ принят как подходящий

Использование функции обратного вызова позволяет вам преобразовать совпадение в число и увеличить его, например:

preg_replace_callback(
  "/str/(\d+)str/",
  function($matches) { return "str/" . ((int)$matches[1] + 1) . "str"; }, 
  $original
);

Другие вопросы по теме