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
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! ! ! x@x'
Mysal
Bu mysalda gözleg nusgasy şuňa meňzeýär:
x harplarynyň arasynda 'a'
dan 'k' çenli islendik harp:
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! ! xmx x@x'
Mysal
Bu mysalda gözleg nusgasy şuňa meňzeýär:
x harplarynyň arasynda 'A'
dan 'Z' çenli islendik harp:
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'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
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'xax ! ! ! x@x'
Mysal
Bu mysalda gözleg nusgasy şuňa meňzeýär:
x harplarynyň arasynda 3 dan 7 çenli islendik san:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'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
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! ! ! ! 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
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! ! ! 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
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! ! ! ! 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
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'xx ! ! ! x123x xa3x'
Mysal
Edeliň, harp sany null hem bolup bilsin:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! ! ! x123x xa3x'
Amaly meseleler
Setir berlen:
<?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.
Setir berlen:
<?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.
Setir berlen:
<?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.
Setir berlen:
<?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.
Setir berlen:
<?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.
Setir berlen:
<?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.
Setir berlen:
<?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.
Setir berlen:
<?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.