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ň 'x' gelýän bolsa, we özi 'x'⁅/s ⁆-i çalşyryp goýmaly däl. Eger mesele çözmäge 'ýapyşykly' synanyşsak, netije çykmaýar:

php<?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<?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<?php
  preg_replace('#aaa(?!x)#', '!', 'aaab'); // '!b' gaýtarar
?>
Задание 1

Funksiýa atlaryny öz içine alýan setir berlen:

php<?php
  $str = 'func1() func2() func3()';
?>

Setirden funksiýa atlarynyň massiwini alyň.

Задание 2

Teg bilen setir berlen:

php<?php
  $str = '<a href="" class="eee" id="zzz">';
?>

Bu tegniň atribut atlarynyň massiwini alyň.