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<?php
  $str = 'a+x ax aax aaax';
  $res = preg_replace('#a+x#', '!', $str);
?>

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

php'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<?php
  $str = 'a+x ax aax aaax';
  $res = preg_replace('#a\+x#', '!', $str);
?>

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

php'! ax aax aaax'

Mysal

Bu mysalda nusga şeýle görünýär: 'a' harpy, soňra nokat '.', soňra 'x' harpy:

php<?php
  $str = 'a.x abx azx';
  $res = preg_replace('#a\.x#', '!', $str);
?>

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

php'! 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<?php
  $str = 'a.x abx azx';
  $res = preg_replace('#a.x#', '!', $str);
?>

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

php'! ! !'

Mysal

Üns beriň, nokat özüni aňlatmaly bolan wagty onuň üçin ters süýşmegi unutsaňyz - ony hatda duýup bilmersiňiz:

php<?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<?php
  preg_replace('#a.x#', '!', 'a.x abx azx'); // '! ! !' gaýtarar, goýlup geçileni bolsa '! abx azx' idi
?>