Удалить строку, содержащуюся в определенной начальной и конечной строке

#php #regex

#php #регулярное выражение

Вопрос:

Я просто хочу удалить всю подстроку из строки, когда подстановка начинается с «stringA» и заканчивается «/r».

Исходная строка FX:

 "PeterStringAnone/rGriffin"
  

должно быть

 "PeterGriffin"
  

Комментарии:

1. Вам не обязательно делать это с регулярным выражением

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

3. Ну, да, это можно сделать с помощью регулярных выражений.

4. preg_replace('~StringA(.*)/r~U', '', $str)

Ответ №1:

Вы можете использовать следующее.

 $text = 'PeterStringAnone/rGriffin';
$text = preg_replace('~StringA.*/r~i', '', $text);
echo $text; //=> "PeterGriffin"
  

Если у вас будет несколько случаев этого, следуйте .* за a ? для не жадного соответствия.

 $text = preg_replace('~StringA.*?/r~i', '', $text);
  

Ответ №2:

ДЕМОНСТРАЦИЯ

 $re = '/StringA[wd] /r/';
$str = 'PeterStringAnone/rGriffin'; 
$result = preg_replace($re, '', $str);
  

Комментарии:

1. Принятие вашего, поскольку оно аналогично остальным, и у него также есть демонстрация. Надеюсь, я не несправедлив к остальным 🙂

2. @PotneySwitters Спасибо, приятель 🙂

Ответ №3:

Вы должны проверить это :

 $pattern = "(.*)StringA.*/r(.*)";
$replacement = "$1$2";
$string = "PeterStringAnone/rGriffin";
$new_string = preg_replace($pattern, $replacement, $string);
  

Я надеюсь, что это поможет вам.