Hat-tegnet inde i sæt i PHP regulære udtryk

Som du ved, laver hat-tegnet inde i [] en negation, når det skrives i starten af parenteserne. Det betyder, at det er et specialtegn inde i disse parenteser. For at få hat-tegnet som et symbol, skal man enten escape det eller fjerne det fra første plads.

Eksempel

I det følgende eksempel er søgemønsteret sådan: første tegn er alt undtagen 'd', derefter to bogstaver 'x'.

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

Som resultat vil følgende blive skrevet i variablen:

php'! ! ! dxx'

Eksempel

Men nu er søgemønsteret sådan: første tegn - er 'd' eller '^', derefter to bogstaver 'x':

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

Som resultat vil følgende blive skrevet i variablen:

php'axx bxx ! !'

Eksempel

Man behøver ikke at fjerne hat-tegnet fra første plads, man kan blot escape det med en omvendt skråstreg, og så vil det betyde sig selv:

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

Som resultat vil følgende blive skrevet i variablen:

php'axx bxx ! !'

Praktiske opgaver

Задание 1

Givet en streng:

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

Skriv et regulært udtryk, der finder strenge efter mønsteret: hat eller at-tegn, og derefter to latinske bogstaver.

Задание 2

Givet en streng:

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

Skriv et regulært udtryk, der finder strenge efter mønsteret: IKKE hat og ikke at-tegn, men derefter to latinske bogstaver.

Задание 3

Givet en streng:

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

Skriv et regulært udtryk, der finder strenge efter mønsteret: IKKE hat, men derefter to latinske bogstaver.