⊗ppPmRgNPB 252 of 447 menu

Neohranjevalni oklepaji v regularnih izrazih PHP

Oklepaji () opravljajo dve funkciji - grupiranje znakov in funkcijo zajema (capturing). Kaj pa narediti, če želimo grupirati, a ne zajeti v skupino? Za rešitev tega problema so bili izumljeni posebni neohranjevalni oklepaji (?: ) - ti grupirajo, vendar ne zajamejo v skupino.

Primer

V naslednjem primeru prvi oklepaji so potrebni za grupiranje, drugi pa za zajem. Vendar, obe vrsti oklepajev shranijo podatke v zajem:

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

Kot rezultat bo v naših zajemih naslednje:

<?php var_dump($res[0]); // izpiše 'abab123' var_dump($res[1]); // izpiše 'ab' var_dump($res[2]); // izpiše '123' ?>

Primer

Naredimo tako, da bo prvi par oklepajev le grupiral, ne pa tudi zajel v skupino:

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

Kot rezultat bo v prvem zajemu naša številka:

<?php var_dump($res[1]); // izpiše '123' ?>

Praktične naloge

Dane so podnize, razdeljene na dva dela poljubno količino parov $@:

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

Poiščite vsako od takih podnizov in za vsako našto podniz v prvi zajem postavite tisto, kar je pred ločilom, v drugi zajem pa - tisto, kar je za ločilom.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni