⊗ppPmRgNPB 252 of 447 menu

Нечувајуће заграде у регуларним изразима у PHP-у

Заграде () обављају две функције - груписање симбола и функцију кармана. А шта да радимо ако желимо да груписемо, али да не смештамо у карман? За решавање таквог проблема креиране су специјалне нечувајуће заграде (?: ) - оне групису, али не смештају у карман.

Пример

У следећем примеру прве заграде су нам потребне за груписање, а друге - за карман. Међутим, обе заграде чувају податке у карман:

<?php $str = 'abab123'; $reg = '#(ab)+([1-9]+)#'; preg_match_all($reg, $str, $res); ?>

Као резултат у нашим карманима ће бити следеће:

<?php var_dump($res[0]); // исписаће 'abab123' var_dump($res[1]); // исписаће 'ab' var_dump($res[2]); // исписаће '123' ?>

Пример

Хајде да учинимо да први пар заграда само групише, али да не смешта у карман:

<?php $str = 'abab123'; $reg = '#(?:ab)+([1-9]+)#'; preg_match_all($reg, $str, $res); ?>

Као резултат у првом карману ће бити наш број:

<?php var_dump($res[1]); // исписаће '123' ?>

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

Дате су подниске, подељене на два дела произвољним бројем парова $@:

<?php $str = 'aaa$@bbb aaa$@$@bbb aaa$@$@$@bbb'; ?>

Пронађите сваку од таквих подниски и за сваку пронађену подниску сместите у први карман оно што стоји пре раздвајача, а у други карман - оно што стоји после раздвајача.

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