Znak stříšky uvnitř množin v regulárních výrazech PHP
Jak víte, stříška uvnitř [] vytváří
negaci, když je napsána na začátku závorek.
To znamená, že je uvnitř těchto závorek speciálním znakem.
Chcete-li získat stříšku jako symbol,
je potřeba ji buď uvést, nebo odstranit z
prvního místa.
Příklad
V následujícím příkladu je vzor hledání následující:
první znak je vše kromě 'd',
poté dvě písmena 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Výsledek zapsaný do proměnné bude následující:
'! ! ! dxx'
Příklad
A nyní je vzor hledání následující: první znak
- je to 'd' nebo '^', poté dvě
písmena 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Výsledek zapsaný do proměnné bude následující:
'axx bxx ! !'
Příklad
Není nutné odstranit stříšku z prvního místa, stačí ji uvést pomocí zpětného lomítka a bude představovat samu sebe:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Výsledek zapsaný do proměnné bude následující:
'axx bxx ! !'
Praktické úlohy
Je dán řetězec:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Napište regulární výraz, který najde řetězce podle vzoru: stříška nebo zavináč, a poté dvě latinská písmena.
Je dán řetězec:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Napište regulární výraz, který najde řetězce podle vzoru: NE stříška a ne zavináč, a poté dvě latinská písmena.
Je dán řetězec:
<?php
$str = '^xx axx ^zz bkk';
?>
Napište regulární výraz, který najde řetězce podle vzoru: NE stříška, a poté dvě latinská písmena.