Lokkis sulud PHP regulaaravaldistes
Operaatorid +, *, ? on head,
kuid nendega ei saa määrata konkreetset
korduste arvu. Sel juhul tuleb appi
operaator {}.
See töötab järgmiselt: {5}
- viis kordust, {2,5} - kordub
kahest viieni (mõlemad kaasa arvatud), {2,}
- kordub kaks korda või rohkem.
Näide
Selles näites on otsimismustril järgmine välimus:
täht 'x', täht 'a' üks
või kaks korda, täht 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,2}x#', '!', $str);
?>
Tulemusena kirjutatakse muutujasse järgmine:
'xx ! ! xaaax'
Näide
Selles näites on otsimismustril järgmine välimus:
täht 'x', täht 'a' kaks
korda või rohkem, täht 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{2,}x#', '!', $str);
?>
Tulemusena kirjutatakse muutujasse järgmine:
'xx xax ! !'
Näide
Selles näites on otsimismustril järgmine välimus:
täht 'x', täht 'a' kolm
korda, täht 'x':
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{3}x#', '!', $str);
?>
Tulemusena kirjutatakse muutujasse järgmine:
'xx xax xaax !'
Näide
Selles näites on otsimismustril järgmine välimus:
täht 'a' kümme korda:
<?php
$str = 'aaa aaaaaaaaaa aaa';
$res = preg_replace('#a{10}#', '!', $str);
?>
Tulemusena kirjutatakse muutujasse järgmine:
'aaa ! aaa'
Näide
Selles näites soovis koodi autor sellist mustrit:
täht 'x', täht 'a' kolm
korda või vähem, täht 'x',
kuid kahjuks see - {,3} - ei
tööta. Tuleb määrata selgelt:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{1,3}x#', '!', $str);
?>
Tulemusena kirjutatakse muutujasse järgmine:
'xx ! ! !'
Näide
Null on samuti lubatud:
<?php
$str = 'xx xax xaax xaaax';
$res = preg_replace('#xa{0,3}x#', '!', $str);
?>
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! !'
Praktilised ülesanded
Antud on sõne:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
Kirjutage regulaaravaldis, mis leiab sõned
'abba', 'abbba', 'abbbba'
ja ainult need.
Antud on sõne:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
Kirjutage regulaaravaldis, mis leiab sõned
kujul 'aba', milles 'b' esineb
vähem kui kolm korda (kaasa arvatud).
Antud on sõne:
<?php
$str = 'aa aba abba abbba abbbba abbbbba';
?>
Kirjutage regulaaravaldis, mis leiab sõned
kujul 'aba', milles 'b' esineb
rohkem kui neli korda (kaasa arvatud).