PHP regular ifadelerinde nyşan toplumlary

Nyşan toparlary \d we \w ýeterlik çeýeýlikli däl. Hatta şuňa meňzeş ýönekeý mesele, mysal üçin ähli harp tapmak, ýöne san däl - olaryň bilen çözüp bolmaýar. Şeýle meseleler üçin ÝA-DA amalyny ýerine ýetirýän kwadrat möýjeçleri ulanyp bilersiňiz.

Kwadrat möýjeçler içindäki bellenen nyşanlaryň haýsydyr birini bir nyşan bilen çalşyrýar. Mysal üçin, muňa meňzeş: #x[abc]x# - biz diýýäris, ýagny gyrada x harp durmaly, içinde bolsa - bir nyşan: ýa 'a', ýa 'b', ýa 'c'.

Kwadrat möýjeçlerden soň gaýtalamak operatorlaryny ýazyp bolýar. Mysal üçin, muňa meňzeş: #x[abc]+x# - biz diýýäris, ýagny x harplarynyň arasynda 'a', 'b' we 'c' nyşanlarynyň islendik sany - islendik birikmede bolup bilýär.

Diňe nyşanlary sanamak däl, eýsem iki nyşanyň arasynda defis ýazyň arkaly nyşan toparlaryny döredip bolýar. Mysal üçin, muňa meňzeş: #[a-d]# - biz 'a' dan 'd' çenli ähli nyşanlary alýarys.

Geliň mysallar bilen göreliň.

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 'a' dan 'z' çenli islendik harp:

php<?php
  $str = 'xax xbx xcx x@x';
  $res = preg_replace('#x[a-z]x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'! ! ! x@x'

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 'a' dan 'k' çenli islendik harp:

php<?php
  $str = 'xax xbx xmx x@x';
  $res = preg_replace('#x[a-k]x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'! ! xmx x@x'

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 'A' dan 'Z' çenli islendik harp:

php<?php
  $str = 'xax xBx xcx x@x';
  $res = preg_replace('#x[A-Z]x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'xax ! xcx x@x'

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 0 dan 9 çenli islendik san:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[0-9]x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'xax ! ! ! x@x'

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 3 dan 7 çenli islendik san:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[3-7]x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'xax x1x ! ! x@x'

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 'a' dan 'z' çenli islendik harp ýa-da 1 dan 9 çenli san:

php<?php
  $str = 'xax x1x x3x x5x x@x';
  $res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'! ! ! ! x@x'

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 'a' dan 'z' çenli islendik harp ýa-da 'A' dan 'Z' çenli harp:

php<?php
  $str = 'xax xBx xcx x5x x@x';
  $res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'! ! ! x5x x@x'

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 'a' dan 'z' çenli islendik harp ýa-da 1, 2 sanlary:

php<?php
  $str = 'xax xbx x1x x2x x3x';
  $res = preg_replace('#x[a-z12]x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'! ! ! ! x3x'

Mysal

Bu mysalda gözleg nusgasy şuňa meňzeýär: x harplarynyň arasynda 'a' dan 'z' çenli harplar 1 we ondan köp mukdarda:

php<?php
  $str = 'xx xabesx xaadx x123x xa3x';
  $res = preg_replace('#x[a-z]+x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'xx ! ! ! x123x xa3x'

Mysal

Edeliň, harp sany null hem bolup bilsin:

php<?php
  $str = 'xx xabesx xaadx x123x xa3x';
  $res = preg_replace('#x[a-z]*x#', '!', $str);
?>

Netijede üýtgeýjä şu ýazylar:

php'! ! ! x123x xa3x'

Amaly meseleler

Задание 1

Setir berlen:

php<?php
  $str = 'aba aea aca aza axa';
?>

Şu nusgaya görä regular ýazyň: gyrlarda 'a' harplary durýar, olaryň arasynda bolsa - 'b', 'e' ýa-da 'x' harpy.

Задание 2

Setir berlen:

php<?php
  $str = 'a1a a3a a7a a9a aba';
?>

Şu nusgaya görä regular ýazyň: gyrlarda 'a' harplary durýar, olaryň arasynda bolsa - 3-den 6-a çenli san.

Задание 3

Setir berlen:

php<?php
  $str = 'aba aea afa aha aga';
?>

Şu nusgaya görä regular ýazyň: gyrlarda 'a' harplary durýar, olaryň arasynda bolsa - a dan g çenli harp.

Задание 4

Setir berlen:

php<?php
  $str = 'aba aea afa aha aga';
?>

Şu nusgaya görä regular ýazyň: gyrlarda 'a' harplary durýar, olaryň arasynda bolsa - a dan f we j den z çenli harp.

Задание 5

Setir berlen:

php<?php
  $str = 'aAa aea aEa aJa a3a';
?>

Şu nusgaya görä regular ýazyň: gyrlarda 'a' harplary durýar, olaryň arasynda bolsa - a dan f we A dan D çenli harp.

Задание 6

Setir berlen:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Şu nusgaya görä regular ýazyň: gyrlarda 'a' harplary durýar, olaryň arasynda bolsa - kiçi latyn harplary, beýlekilerine el degdirmezden.

Задание 7

Setir berlen:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Şu nusgaya görä regular ýazyň: gyrlarda 'a' harplary durýar, olaryň arasynda bolsa - kiçi we uly latyn harplary, beýlekilerine el degdirmezden.

Задание 8

Setir berlen:

php<?php
  $str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>

Şu nusgaya görä regular ýazyň: gyrlarda 'a' harplary durýar, olaryň arasynda bolsa - kiçi latyn harplary we sanlar, beýlekilerine el degdirmezden.