⊗ppPmRgVA 258 of 447 menu

Прагляд наперад у рэгулярках PHP

Часам трэба вырашыць задачу такога тыпу: знайсці радок 'aaa' і замяніць яе на '!', але толькі калі пасля 'aaa' стаіць 'x', а сам 'x' пры гэтым не замяняць. Калі мы паспрабуем вырашыць задачу 'ў лоб', то ў нас нічога не выйдзе:

<?php preg_replace('#aaax#', '!', 'aaax'); // будзе '!', а трэба '!x' ?>

Для вырашэння задачы патрэбны спосаб сказаць, што 'x' не варта замяняць. Робіцца гэта з дапамогай спецыяльных дужак (?= ), якія проста глядзяць, але не забіраюць з сабой.

Гэтыя дужкі называюцца пазітыўны прагляд наперад. Пазітыўны - так як 'x' (у нашым выпадку) павінен быць - толькі тады адбудзецца замена.

Давайце прымянім гэтыя дужкі для вырашэння нашай задачы:

<?php preg_replace('#aaa(?=x)#', '!', 'aaax'); // верне '!x' ?>

Ёсць і негатыўны прагляд наперад - (?! ) - ён, насупраць, кажа, што чагосьці павінна не быць. У наступным прыкладзе замена адбудзецца, толькі калі пасля 'aaa' не стаіць 'x':

<?php preg_replace('#aaa(?!x)#', '!', 'aaab'); // верне '!b' ?>

Дадзены радок, які змяшчае імёны функцый:

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

Атрымайце масіў імёнаў функцый з радка.

Дадзены радок з тэгам:

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

Атрымайце масіў імёнаў атрыбутаў гэтага тэга.

Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць