PHP regulýar ifadelerinde öňe seretme
Käwagt şuňa meňzeş mesele çözmeli bolýar: setiri
'aaa' tap we ony '!'⁅/s ⁆ bilen çalşyryp goý,
ýöne diňe eger 'aaa'⁅/s ⁆-dan soň
, we özi 'x' gelýän bolsa'x'⁅/s ⁆-i
çalşyryp goýmaly däl. Eger mesele çözmäge 'ýapyşykly' synanyşsak,
netije çykmaýar:
<?php
preg_replace('#aaax#', '!', 'aaax'); // '!' bolar, ýöne '!x' bolmaly
?>
Bu mesele çözmek üçin, 'x'⁅/s ⁆-i çalşyryp goýmazlygy aýtmaly.
Bu, (?= ) ýörite möýşümleri bilen amala aşyrylýar,
olar diňe seretýär, ýöne özüne almaz.
Bu möýşümlere pozytiw öňe seretme diýilýär.
Pozytiw - sebäbi 'x'⁅/s ⁆ (biziň ýagdaýymyzda)
bolmaly - diňe şonda çalşyryp goýmak amala aşyrlar.
Geliň, bu möýşümleri biziň meselemizi çözmek üçin ulanyň:
<?php
preg_replace('#aaa(?=x)#', '!', 'aaax'); // '!x' gaýtarar
?>
Negatiw öňe seretme⁅/d ⁆ hem bar
- (?! ) - ol, tersine, bir zadyň bolmaly dädigini aýdýar.
Indiki mysalda çalşyryp goýmak diňe şonda amala aşyrlar, eger
'aaa'⁅/s ⁆-dan soň 'x' gelmeýän bolsa:
<?php
preg_replace('#aaa(?!x)#', '!', 'aaab'); // '!b' gaýtarar
?>
Funksiýa atlaryny öz içine alýan setir berlen:
<?php
$str = 'func1() func2() func3()';
?>
Setirden funksiýa atlarynyň massiwini alyň.
Teg bilen setir berlen:
<?php
$str = '<a href="" class="eee" id="zzz">';
?>
Bu tegniň atribut atlarynyň massiwini alyň.