Начало и конец строки в регулярках PHP

Существуют специальные символы, которые обозначают начало ^ или конец строки $. Давайте посмотрим их работу на примерах.

Пример

В данном примере шаблон поиска такой: заменить 'aaa' на '!' только, если оно стоит в начале строки:

php<?php
  $str = 'aaa aaa aaa';
  $res = preg_replace('#^aaa#', '!', $str);
?>

В результате в переменную запишется следующее:

php'! aaa aaa'

Пример

В данном примере шаблон поиска такой: заменить 'aaa' на '!' только, если оно стоит в конце строки:

php<?php
  $str = 'aaa aaa aaa';
  $res = preg_replace('#aaa$#', '!', $str);
?>

В результате в переменную запишется следующее:

php'aaa aaa !'

Пример

Когда в начале регулярки стоит ^, а в конце - $, то таким образом мы проверяем всю строку целиком на соответствие регулярке.

В следующем примере шаблон поиска такой: буква 'a' повторяется один или более раз, заменить всю строку на '!' только она состоит из одних букв 'a'.

php<?php
  $str = 'aaa';
  $res = preg_replace('#^a+$#', '!', $str);
?>

В результате в переменную запишется следующее:

php'!'

Практические задачи

Задание 1

Дана строка:

php<?php
  $str = 'abc def xyz';
?>

Напишите регулярку, которая найдет первую подстроку из букв.

Задание 2

Дана строка:

php<?php
  $str = 'abc def xyz';
?>

Напишите регулярку, которая найдет последнюю подстроку из букв.

Задание 3

Дана строка:

php<?php
  $str = '$aaa$ $bbb$ $ccc$';
?>

Напишите регулярку, которая найдет последнюю подстроку из букв, окруженных символами доллара.