РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
914 of 1361 menu

Метод replaceMatches

Метод replaceMatches класса UnicodeString выполняет поиск по регулярному выражению и заменяет все найденные совпадения на заданную строку. Первым параметром передаётся шаблон регулярного выражения, вторым - строка замены. Метод возвращает новый объект UnicodeString, а исходная строка остаётся неизменной.

Если совпадений нет, возвращается копия исходной строки без изменений.

Синтаксис

$res = $ustr->replaceMatches(string $pattern, string $replacement): UnicodeString

Пример

Давайте заменим все цифры в строке на символ '#':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\String\UnicodeString; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { $ustr = new UnicodeString('abc123de45'); $res = $ustr->replaceMatches('/\d+/', '#'); return new Response($res->toString()); } } ?>

Результат выполнения кода:

abc#de#

Пример

Давайте заменим все последовательности пробельных символов на один пробел:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\String\UnicodeString; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { $ustr = new UnicodeString("hello user abcde"); $res = $ustr->replaceMatches('/\s+/', ' '); return new Response($res->toString()); } } ?>

Результат выполнения кода:

"hello user abcde"

Пример

Давайте удалим все небуквенные символы из строки, передав пустую строку в качестве замены:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\String\UnicodeString; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { $ustr = new UnicodeString('user-name_123'); $res = $ustr->replaceMatches('/[^a-z]+/i', ''); return new Response($res->toString()); } } ?>

Результат выполнения кода:

"username"

Пример

Давайте используем обратные ссылки в строке замены, чтобы поменять местами части строки:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\String\UnicodeString; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { $ustr = new UnicodeString('article: user'); $res = $ustr->replaceMatches('/(\w+): (\w+)/', '$2 - $1'); return new Response($res->toString()); } } ?>

Результат выполнения кода:

"user - article"

Смотрите также

  • метод replace,
    который заменяет подстроки без регулярных выражений
  • метод match,
    который возвращает совпадения с регулярным выражением
  • класс UnicodeString,
    который представляет Unicode-строку
  • метод split,
    который разбивает строку по регулярному выражению
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить