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
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Som resultat vil følgende blive skrevet i variablen:
'! ! ! dxx'
Eksempel
Men nu er søgemønsteret sådan: første tegn
- er 'd' eller '^', derefter to
bogstaver 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Som resultat vil følgende blive skrevet i variablen:
'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
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Som resultat vil følgende blive skrevet i variablen:
'axx bxx ! !'
Praktiske opgaver
Givet en streng:
<?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.
Givet en streng:
<?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.
Givet en streng:
<?php
$str = '^xx axx ^zz bkk';
?>
Skriv et regulært udtryk, der finder strenge efter mønsteret: IKKE hat, men derefter to latinske bogstaver.