Die 'of'-opdrag in PHP regulêre uitdrukkings
In hierdie les gaan ons die opdrag
| ontleed, wat 'n meer
kragtige weergawe van OF is in vergelyking met
die opdrag []. Hierdie opdrag laat toe om
die regulêre uitdrukking in verskeie dele te verdeel.
Die gesoekte kan óf onder een
deel van die regulêre uitdrukking val, óf onder 'n ander. Kom ons
kyk na voorbeelde.
Voorbeeld
In hierdie voorbeeld is die soekpatroon so: drie
letters 'a' of drie letters 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike weggeskryf word:
'! ! abb'
Voorbeeld
In hierdie voorbeeld is die soekpatroon so: drie
letters 'a' of van 1 en meer
letters 'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike weggeskryf word:
'! ! ! ! axx'
Voorbeeld
In hierdie voorbeeld is die soekpatroon so: een of meer letters of drie syfers:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike weggeskryf word:
'! ! ! 1 12 !'
Voorbeeld
Die vertikale streep kan die regulêre uitdrukking nie net in twee dele verdeel nie, maar in enige aantal dele:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike weggeskryf word:
'! ! ! ddd'
Voorbeeld
As die vertikale streep binne ronde hakies
staande is, dan werk die 'of' slegs binne
hierdie hakies. As voorbeeld, kom ons vind stringe
volgens die volgende patroon: aan die begin staan
óf 'a', óf 'b' een of meer
keer, en dan twee letters 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
As gevolg sal die volgende in die veranderlike weggeskryf word:
'! ! ! exx'
Praktiese take
Gegee 'n string:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Skryf 'n regulêre uitdrukking wat stringe sal vind
volgens die patroon: aan die rante is daar letters 'a',
en tussen hulle - óf die letter 'e' enige
aantal kere of die letter 'x' enige
aantal kere.
Gegee 'n string:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Skryf 'n regulêre uitdrukking wat stringe sal vind
volgens die patroon: aan die rante is daar letters 'a',
en tussen hulle - óf die letter 'e' twee keer
of die letter 'x' enige aantal kere.