Hatte-symbolet inni sett i regulære uttrykk i PHP
Som du vet, gir hatten inni []
negasjon når den skrives i starten av parentesene.
Det betyr at den er et spesialtegn inni
disse parentesene. For å få hatten som et symbol,
må du enten escape den eller flytte den vekk
fra første plass.
Eksempel
I følgende eksempel er søkemønsteret slik:
første tegn er alt untatt 'd',
deretter to bokstaver 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Resultatet som lagres i variabelen blir følgende:
'! ! ! dxx'
Eksempel
Nå er søkemønsteret slik: første tegn
er 'd' eller '^', deretter to
bokstaver 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Resultatet som lagres i variabelen blir følgende:
'axx bxx ! !'
Eksempel
Du trenger ikke flytte hatten vekk fra første plass, du kan bare escape den med en bakoverstrek, og den vil da representere seg selv:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Resultatet som lagres i variabelen blir følgende:
'axx bxx ! !'
Praktiske oppgaver
Gitt en streng:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Skriv et regulært uttrykk som finner strenger med mønsteret: hatt eller krøllalfa, og deretter to latinske bokstaver.
Gitt en streng:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Skriv et regulært uttrykk som finner strenger med mønsteret: IKKE hatt og ikke krøllalfa, og deretter to latinske bokstaver.
Gitt en streng:
<?php
$str = '^xx axx ^zz bkk';
?>
Skriv et regulært uttrykk som finner strenger med mønsteret: IKKE hatt, og deretter to latinske bokstaver.