Krulhakies in regulêre uitdrukkings van PHP
Die operateurs +, *, ? is goed,
maar met hulle kan jy nie 'n spesifieke
aantal herhalings spesifiseer nie. In hierdie geval sal die operateur {}
te hulp kom.
Dit werk soos volg: {5}
- vyf herhalings, {2,5} - herhaal
twee tot vyf keer (albei ingesluit), {2,}
- herhaal twee keer of meer.
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
letter 'x', letter 'a' een
of twee keer, letter 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,2}x#', '!', $str);
?>
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'xx ! ! xaaax'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
letter 'x', letter 'a' twee
keer of meer, letter 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{2,}x#', '!', $str);
?>
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'xx xax ! !'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
letter 'x', letter 'a' drie
keer, letter 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{3}x#', '!', $str);
?>
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'xx xax xaax !'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
letter 'a' tien keer:
<?php
$str = 'aaa aaaaaaaaaa aaa';
$res = preg_replace('#a{10}#', '!', $str);
?>
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'aaa ! aaa'
Voorbeeld
In hierdie voorbeeld wou die outeur van die kode so 'n patroon hê:
letter 'x', letter 'a' drie
keer of minder, letter 'x',
maar ongelukkig werk dit - {,3} - nie
nie. Dit moet eksplisiet gespesifiseer word:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,3}x#', '!', $str);
?>
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'xx ! ! !'
Voorbeeld
Nul is ook toegelaat:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{0,3}x#', '!', $str);
?>
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'! ! ! !'
Praktiese take
Gegee 'n string:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
Skryf 'n regulêre uitdrukking wat die stringe sal vind
'abba', 'abbba', 'abbbba'
en slegs hulle.
Gegee 'n string:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
Skryf 'n regulêre uitdrukking wat stringe van die
tipe 'aba' sal vind, waarin 'b' voorkom
minder as drie keer (ingesluit).
Gegee 'n string:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
Skryf 'n regulêre uitdrukking wat stringe van die
tipe 'aba' sal vind, waarin 'b' voorkom
meer as vier keer (ingesluit).