Karakterismétlési operátorok reguláris kifejezésekben
Vannak helyzetek, amikor azt szeretnénk megadni,
hogy egy karakter adott számú alkalommal ismétlődik.
Ha ismerjük a pontos ismétlődések számát,
akkor egyszerűen többször leírhatjuk -
#aaaa#. De mit tegyünk, ha azt szeretnénk
mondani: ismétlődik egyszer vagy többször?
Erre szolgálnak az (kvantifikátorok)
ismétlési operátorok: plusz + (egyszer vagy többször),
csillag * (nulla vagy többször) és
kérdezőjel ? (nulla vagy egyszer). Ezek
az operátorok az előttük álló karakterre vonatkoznak.
Nézzük meg ezeknek az operátoroknak a működését példákon keresztül.
Példa
Keressük meg az összes résztömböt a következő minta szerint:
'x' betű, 'a' betű egyszer vagy többször,
'x' betű:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
Ennek eredményeként a változóba a következő íródik:
'xx ! ! ! xbx'
Példa
Keressük meg az összes résztömböt a következő minta szerint:
'x' betű, 'a' betű nulla vagy többször,
'x' betű:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
Ennek eredményeként a változóba a következő íródik:
'! ! ! ! xbx'
Példa
Keressük meg az összes résztömböt a következő minta szerint:
'x' betű, 'a' betű nulla vagy egyszer,
'x' betű:
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
Ennek eredményeként a változóba a következő íródik:
'! ! xaax xbx'
Gyakorlati feladatok
Adott a következő sztring:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Írjon reguláris kifejezést, amely megtalálja a sztringeket
a következő minta szerint: 'a' betű, 'b' betű
egyszer vagy többször, 'a' betű.
Adott a következő sztring:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Írjon reguláris kifejezést, amely megtalálja a sztringeket
a következő minta szerint: 'a' betű, 'b' betű
nulla vagy többször, 'a' betű.
Adott a következő sztring:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Írjon reguláris kifejezést, amely megtalálja a sztringeket
a következő minta szerint: 'a' betű, 'b' betű
egyszer vagy egyszer sem, 'a' betű.
Adott a következő sztring:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Írjon reguláris kifejezést, amely megtalálja a
'aa', 'aba', 'abba',
'abbba' sztringeket anélkül, hogy megfogná
a 'abca' és 'abea' sztringeket.