Как альтернативно проверить символы и заменить их на Y, если это X?

У меня есть строка, примерно такая:

$str ="it is a test string.";

 // for more clarification

 i t   i s   a   t e  s  t     s  t  r  i  n  g  .
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Теперь мне нужно проверить все символы, кратные 4 (плюс первый символ) , например:

1  => i
4  => i
8  => [space]
12 => t
16 => r
20 => .

Теперь мне нужно сравнить их с Y (Y - это переменная (символ), например, Y = 'r' здесь ) [тысяча сто двадцать один]. Поэтому я хочу заменить Y на X (X также является переменной (символом), например, X = 'm' здесь).

Итак, я хочу получить вывод :

it is a test stming.

Вот мое решение : я могу сделать это с помощью некоторой функции PHP:

  • strlen($str): для подсчета количества символов (с именем $sum)
  • $sum / 4: для поиска символов, кратных 4
  • substr($str, 4,1): для выбора конкретного символа (с именем $char) {здесь есть проблема }
  • if ($char == 'r') {} : сравнить
  • str_replace('r','m',$char): заменить

и затем объединить все $char друг с другом.


Но у моего решения есть две задачи :

  1. substr() не учитывает [space] символ (как я уже упоминал выше)
  2. Комбинирование символов немного сложнее. (Нужно немного переработать отходы)

Ну, есть какое-то решение? Мне нравится делать это с помощью REGEX. Возможно ли это?

9
задан Shafizadeh 16 November 2015 в 07:29
поделиться