⊗ppPmRgEP 254 of 447 menu

Групи во регуларниот израз во PHP

Содржината на групите е достапна не само во низата за замена, туку и во самиот регуларен израз: ние можеме да ставиме нешто во група, а потоа директно во регуларниот израз да кажеме дека овде треба да стои содржината на таа група.

Содржината на групите е достапна преку нивните броеви, пред кои стои обратна коса црта. На пример, нултата група ќе биде достапна вака: \0, првата група вака - \1, втората - \2 и така натаму.

Сигурен сум дека сè напишано погоре досега е многу нејасно за вас. Тоа не е чудно, бидејќи групите се најмалку разбирливото место на регуларните изрази. Ајде да разбереме преку примери.

Пример

Нека имаме вакава низа:

<?php $str = 'aa bb cd ef'; ?>

Ајде да ги најдеме во неја сите места во кои стојат две какви било исти букви една по друга. За решавање на задачата ќе бараме каква било буква, ќе ја ставиме во група, а потоа ќе провериме дали како следен симбол доаѓа содржината на таа група:

<?php $res = preg_replace('#([a-z])\1#', '!', $str); ?>

Како резултат во променливата ќе се запише следново:

'! ! cd ef'

Пример

Нека имаме вакава низа:

<?php $str = 'asxca buzxb csgd'; ?>

Ајде да ги најдеме во неја сите зборови во кои се исти првата и последната буква. За решавање на задачата ќе напишеме следна шаблон: буква, потоа уште една или повеќе букви, а потоа таква иста буква како првата:

<?php $res = preg_replace('#([a-z])[a-z]+\1#', '!', $str); ?>

Како резултат во променливата ќе се запише следново:

'! ! csgd'

Пример

Наместо \1 може да се пишува \g1:

<?php $res = preg_replace('#([a-z])[a-z]+\g1#', '!', $str); ?>

Пример

Може исто така да се пишува \g{1}:

<?php $res = preg_replace('#([a-z])[a-z]+\g{1}#', '!', $str); ?>

Пример

Во кадрави загради може да се наведат негативни броеви. Во овој случај групите ќе се бројат од крајот:

<?php $res = preg_replace('#([a-z])([a-z])\g{-2}#', '!', $str); ?>

Практични задачи

Дадена е низа:

<?php $str = 'aaa bbb ccc xyz'; ?>

Најдете ги сите поднизи во кои има три исти букви една по друга.

Дадена е низа:

<?php $str = 'a aa aaa abab bbbb'; ?>

Најдете ги сите поднизи во кои има две или повеќе исти букви една по друга.

Дадена е низа:

<?php $str = 'aaa aaa bbb bbb ccc ddd'; ?>

Најдете ги сите поднизи во кои има два исти збора еден по друг.

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