Списък със специални символи в регулярните изрази в PHP

Ако екранирате обикновен символ - нищо лошо няма да се случи - той във всеки случай ще означава себе си. Изключение - цифрите, те не могат да се екранират.

Често възниква съмнение, дали даден символ е специален. Някои хора стигат дотам, че екранират всички подозрителни символи наред. Въпреки това, това е лоша практика (запълва регулярния израз с обратни наклонени черти).

Специални символи са: $ ^ . * + ? \ / {} [] () |

Не са специални символи: @ : , ' " ; - _ = < > % # ~ ` & !

Задание 1

Даден е низ:

php<?php
  $str = 'a.a aba aea';
?>

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

Задание 2

Даден е низ:

php<?php
  $str = '2+3 223 2223';
?>

Напишете регулярен израз, който ще намери низа '2+3', без да улови останалите.

Задание 3

Даден е низ:

php<?php
  $str = '23 2+3 2++3 2+++3 345 567';
?>

Напишете регулярен израз, който ще намери низовете '2+3', '2++3', '2+++3', без да улови останалите (+ може да бъде произволен брой).

Задание 4

Даден е низ:

php<?php
  $str = '23 2+3 2++3 2+++3 445 677';
?>

Напишете регулярен израз, който ще намери низовете '23', '2+3', '2++3', '2+++3', без да улови останалите.

Задание 5

Даден е низ:

php<?php
  $str = '*+ *q+ *qq+ *qqq+ *qqq qqq+';
?>

Напишете регулярен израз, който ще намери низовете '*q+', '*qq+', '*qqq+', без да улови останалите.

Задание 6

Даден е низ:

php<?php
  $str = '[abc] {abc} abc (abc) [abc]';
?>

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