⊗ppPmRgNPB 252 of 447 menu

Nesaglabājošās iekavas PHP regulārajās izteiksmēs

Iekavas () veic divas funkcijas - simbolu grupēšanu un capture funkciju. Bet ko darīt, ja mums ir nepieciešams grupēt, bet neielikt capture? Šādas problēmas risināšanai tika izgudrotas speciālas nesaglabājošās iekavas (?: ) - tās grupē, bet neieliek capture.

Piemērs

Nākamajā piemērā pirmās iekavas mums vajadzīgas grupēšanai, bet otrajās - capture. Tomēr gan vienas, gan otras iekavas saglabā datus capture:

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

Rezultātā mūsu capture būs sekojošais:

<?php var_dump($res[0]); // izvadīs 'abab123' var_dump($res[1]); // izvadīs 'ab' var_dump($res[2]); // izvadīs '123' ?>

Piemērs

Padarīsim tā, lai pirmā iekavu pāris tikai grupētu, bet neieliktu capture:

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

Rezultātā pirmajā capture būs mūsu skaitlis:

<?php var_dump($res[1]); // izvadīs '123' ?>

Praktiskie uzdevumi

Dotas apakšvirknes, sadalītas divās daļās ar patvaļīgu $@ pāru daudzumu:

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

Atrodiet katru no šādām apakšvirknēm un katrai atrastajai apakšvirknei ievietojiet pirmajā capture to, kas atrodas pirms atdalītāja, bet otrajā capture - to, kas atrodas aiz atdalītāja.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt