Het caret-teken binnen sets in PHP regex

Zoals je weet, geeft het caret-teken binnen [] een negatie, wanneer het aan het begin van de haakjes wordt geschreven. Het is dus een speciaal teken binnen deze haakjes. Om het caret-teken als een gewoon teken te krijgen, moet je het of escapen, of niet op de eerste plaats zetten.

Voorbeeld

In het volgende voorbeeld is het zoekpatroon als volgt: het eerste teken is alles behalve 'd', dan twee letters 'x'.

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[^d]xx#', '!', $str);
?>

Als resultaat wordt het volgende in de variabele geschreven:

php'! ! ! dxx'

Voorbeeld

En nu is het zoekpatroon als volgt: het eerste teken is 'd' of '^', dan twee letters 'x':

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[d^]xx#', '!', $str);
?>

Als resultaat wordt het volgende in de variabele geschreven:

php'axx bxx ! !'

Voorbeeld

Je kunt het caret-teken niet van de eerste plaats verwijderen, maar het gewoon escapen met een backslash, en dan zal het zichzelf vertegenwoordigen:

php<?php
  $str = 'axx bxx ^xx dxx';
  $res = preg_replace('#[\^d]xx#', '!', $str);
?>

Als resultaat wordt het volgende in de variabele geschreven:

php'axx bxx ! !'

Praktische opdrachten

Задание 1

Gegeven een string:

php<?php
  $str = '^xx axx ^zz bkk @ss';
?>

Schrijf een reguliere expressie die strings vindt volgens het patroon: caret-teken of apenstaartje, en dan twee Latijnse letters.

Задание 2

Gegeven een string:

php<?php
  $str = '^xx axx ^zz bkk @ss';
?>

Schrijf een reguliere expressie die strings vindt volgens het patroon: GEEN caret-teken en geen apenstaartje, en dan twee Latijnse letters.

Задание 3

Gegeven een string:

php<?php
  $str = '^xx axx ^zz bkk';
?>

Schrijf een reguliere expressie die strings vindt volgens het patroon: GEEN caret-teken, en dan twee Latijnse letters.