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<?php
  $str = 'aaa bbb abb';
  $res = preg_replace('#a{3}|b{3}#', '!', $str);
?>

Netijede üýtgeýjäniň içine şu ýazylar:

php'! ! abb'

Mysal

Bu mysalda gözleg şablony şeýle: üç sany 'a' harp ýa-da 1-den we ondan köpräk 'b' harp:

php<?php
  $str = 'aaa bbb bbbb bbbbb axx';
  $res = preg_replace('#a{3}|b+#', '!', $str);
?>

Netijede üýtgeýjäniň içine şu ýazylar:

php'! ! ! ! axx'

Mysal

Bu mysalda gözleg şablony şeýle: bir ýa-da ondan köpräk harp ýa-da üç san:

php<?php
  $str = 'a ab abc 1 12 123';
  $res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>

Netijede üýtgeýjäniň içine şu ýazylar:

php'! ! ! 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<?php
  $str = 'aaa bbb ccc ddd';
  $res = preg_replace('#a+|b+|c+#', '!', $str);
?>

Netijede üýtgeýjäniň içine şu ýazylar:

php'! ! ! 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<?php
  $str = 'axx bxx bbxx exx';
  $res = preg_replace('#(a|b+)xx#', '!', $str);
?>

Netijede üýtgeýjäniň içine şu ýazylar:

php'! ! ! exx'

Amaly wezipher

Задание 1

Setir berlen:

php<?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.

Задание 2

Setir berlen:

php<?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.