Hat-symbolin käyttö PHP:n säännöllisten lausekkeiden joukoissa
Kuten tiedät, hattumerkki [] -sulkeiden sisällä
muodostaa negaation, kun se kirjoitetaan sulkeiden alkuun.
Siten se on erikoismerkki näiden
sulkeiden sisällä. Saadaksesi hattumerkin symbolina,
sinun täytyy joko escapeta se tai siirtää se pois
ensimmäiseltä paikalta.
Esimerkki
Seuraavassa esimerkissä hakumalli on seuraava:
ensimmäinen merkki on mikä tahansa muu kuin 'd',
sitten kaksi kirjainta 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Tuloksena muuttujaan kirjoitetaan seuraava:
'! ! ! dxx'
Esimerkki
Nyt hakumalli on seuraava: ensimmäinen merkki
- on 'd' tai '^', sitten kaksi
kirjainta 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Tuloksena muuttujaan kirjoitetaan seuraava:
'axx bxx ! !'
Esimerkki
Hattua ei tarvitse siirtää ensimmäiseltä paikalta, vaan sen voi escapeta kenoviivalla, ja se tulee tarkoittamaan itseään:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Tuloksena muuttujaan kirjoitetaan seuraava:
'axx bxx ! !'
Käytännön tehtävät
Annettu merkkijono:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Kirjoita säännöllinen lauseke, joka löytää merkkijonot mallin mukaisesti: hattu tai koira, sitten kaksi latinalaista kirjainta.
Annettu merkkijono:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Kirjoita säännöllinen lauseke, joka löytää merkkijonot mallin mukaisesti: EI hattu eikä koira, sitten kaksi latinalaista kirjainta.
Annettu merkkijono:
<?php
$str = '^xx axx ^zz bkk';
?>
Kirjoita säännöllinen lauseke, joka löytää merkkijonot mallin mukaisesti: EI hattu, sitten kaksi latinalaista kirjainta.