Lista specjalnych znaków w wyrażeniach regularnych w PHP

Jeśli ekranujemy zwykły znak - nic strasznego się nie stanie - nadal będzie oznaczał sam siebie. Wyjątkiem są cyfry, ich nie można ekranować.

Często pojawia się wątpliwość, czy dany znak jest specjalny. Niektórzy dochodzą do tego, że ekranują wszystkie podejrzane znaki jeden po drugim. Jednakże jest to zła praktyka (zaśmieca wyrażenie regularne odwrotnymi ukośnikami).

Znakami specjalnymi są: $ ^ . * + ? \ / {} [] () |

Nie są znakami specjalnymi: @ : , ' " ; - _ = < > % # ~ ` & !

Задание 1

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciąg 'a.a', nie przechwytując pozostałych.

Задание 2

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciąg '2+3', nie przechwytując pozostałych.

Задание 3

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciągi '2+3', '2++3', '2+++3', nie przechwytując pozostałych (+ może występować dowolna liczba razy).

Задание 4

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciągi '23', '2+3', '2++3', '2+++3', nie przechwytując pozostałych.

Задание 5

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciągi '*q+', '*qq+', '*qqq+', nie przechwytując pozostałych.

Задание 6

Dany jest ciąg:

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

Napisz wyrażenie regularne, które znajdzie ciągi w nawiasach kwadratowych i zastąpi je na '!'.