⊗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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне