PHP-niň regulýar ifadelerindäki 'ýa-da' buýrugy
Bu sapakda biz
| buýrugyny öwreris, bu bolsa
[] buýrugy bilen deňeşdirende has
güýçli bir ÝA-DA wariantydyr. Bu buýruk
regulýar ifadeni birnäçe bölümlere bölmäge mümkinçilik berýär.
Şonda gözlenilýän zat ýa-da regulýar ifadäniň bir bölegine,
ýa-da beýleki bölegine gabat gelip biler. Mysallar bilen göreli.
Mysal
Bu mysalda gözleg şablony şeýle: üç sany
'a' harp ýa-da üç sany 'b' harp:
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Netijede üýtgeýjäniň içine şu ýazylar:
'! ! abb'
Mysal
Bu mysalda gözleg şablony şeýle: üç sany
'a' harp ýa-da 1-den we ondan
köpräk 'b' harp:
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Netijede üýtgeýjäniň içine şu ýazylar:
'! ! ! ! axx'
Mysal
Bu mysalda gözleg şablony şeýle: bir ýa-da ondan köpräk harp ýa-da üç san:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Netijede üýtgeýjäniň içine şu ýazylar:
'! ! ! 1 12 !'
Mysal
Şertli çyzyk regulýar ifadeni diňe iki bölüme däl, eýsem islendik mukdarda bölümlere bölüp bilýär:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Netijede üýtgeýjäniň içine şu ýazylar:
'! ! ! ddd'
Mysal
Eger şertli çyzyk töwerek ýaýlaryň içinde bolsa,
onda 'ýa-da' diňe şol ýaýlaryň içinde işleýär.
Mysal üçin, setirleri şu şablona laýyklykda tapalyň:
başynda ýa-da 'a', ýa-da 'b' bir
ýa-da ondan köp gezek durýar, we ondan soň iki sany
'x' harp:
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Netijede üýtgeýjäniň içine şu ýazylar:
'! ! ! exx'
Amaly wezipher
Setir berlen:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Regulýar ifadäni ýazyň, şu şablona laýyk setirleri
tapýan: gyralarynda 'a' harplary durýar,
olaryň arasynda bolsa - ýa-da 'e' harp islendik
mukdarda gezek ýa-da 'x' harp islendik
mukdarda gezek.
Setir berlen:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Regulýar ifadäni ýazyň, şu şablona laýyk setirleri
tapýan: gyralarynda 'a' harplary durýar,
olaryň arasynda bolsa - ýa-da 'e' harp iki gezek
ýa-da 'x' harp islendik mukdarda gezek.