Заменить символ, если он следует с номером - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть текст:

$text = 'hello c8 world c test';

Как заменить символ c на chapter, если $text содержит букву c , за которой следует число ?

Таким образом, мы получаем:

$text = 'hello chapter 8 world c test';

Пока мне удалось заменить c на chapter:

str_replace('c', 'chapter ', $text);

Но это заменяет все c символов.Я полагаю, регулярное выражение должно спасти это?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Вы можете использовать регулярное выражение и проверить, какие c имеют следующие цифры:

$text = 'hello c8 world c test';
$result=preg_replace("/c(?=\d+)/", "chapter" ,$text);

echo $result;

запустите здесь

0 голосов
/ 30 ноября 2018

Вы можете использовать:

\bc(\d+)\b

и заменить на

chapter \1

Объяснение:

  • \b отмечает границу слова, чтобы избежать замен внутрислова
  • c(\d+) находит c, за которыми следуют цифры, и записывает эти цифры для будущего использования
  • \1 вместо заменяет первую захваченную группу (цифры) на замену

Демо

Например

preg_replace('/\bc(\d+)\b/', 'chapter \1', $text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...