PHP regular ifadelerinde aýratyn nyşanlary ekranlamak
Göz öňüne getireliň, aýratyn nyşanyň özüni aňladýan bolsun isleýäris. Bunuň üçin onuň öňüne ters süýşme goýulmaly. Geliň mysallar bilen göreliň.
Mysal
Indiki mysalda regular ýazan adam, gözleg nusgasynyň şeýle görünmegini isläpdir: 'a' harpy,
soňra goşuly '+', soňra 'x' harpy. Emma, kody ýazan adam '+' nyşanyny
ekranlamandygy üçin, aslynda gözleg nusgasy şeýle görünýär:
'a' harpy bir ýa-da birnäçe gezek, soňra
'x' harpy:
<?php
$str = 'a+x ax aax aaax';
$res = preg_replace('#a+x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'a+x ! ! !'
Mysal
Indi bolsa ýazan adam goşulyny ters süýşme bilen ekranladýar. Indi gözleg nusgasy islenilýän ýaly görünýär:
'a' harpy, soňra goşuly '+', soňra 'x' harpy.
<?php
$str = 'a+x ax aax aaax';
$res = preg_replace('#a\+x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! ax aax aaax'
Mysal
Bu mysalda nusga şeýle görünýär: 'a' harpy,
soňra nokat '.', soňra
'x' harpy:
<?php
$str = 'a.x abx azx';
$res = preg_replace('#a\.x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! abx azx'
Mysal
Indiki mysalda ýazan adam süýşmegi ekranlap unutdy we regulara ähli kiçi setirler degdi, sebäbi ekranlanmadyk nokat islendik nyşany aňladýar:
<?php
$str = 'a.x abx azx';
$res = preg_replace('#a.x#', '!', $str);
?>
Netijede üýtgeýjä şu ýazylar:
'! ! !'
Mysal
Üns beriň, nokat özüni aňlatmaly bolan wagty onuň üçin ters süýşmegi unutsaňyz - ony hatda duýup bilmersiňiz:
<?php
preg_replace('#a.x#', '!', 'a.x'); // islenilýän ýaly '!' gaýtarar
?>
Görmegimizçe işleýär (sebäbi nokat islendik nyşany, şol sanda adaty
nokady '.' aňladýar). Emma çalyşmalaryň geçýän setirini üýtgetsek -
ýalňyşlygy göreris:
<?php
preg_replace('#a.x#', '!', 'a.x abx azx'); // '! ! !' gaýtarar, goýlup geçileni bolsa '! abx azx' idi
?>