⊗ppPmRgNPB 252 of 447 menu

Ikke-opbevarende parenteser i PHP regulære udtryk

Parenteser () udfører to funktioner - gruppering af tegn og capture group funktion. Men hvad gør vi, hvis vi har brug for at gruppere, men ikke gemme i capture groups? Til at løse dette problem er der specielle ikke-opbevarende parenteser (?: ) - de grupperer, men gemmer ikke i capture groups.

Eksempel

I det følgende eksempel har vi brug for de første parenteser til gruppering, og de anden - til capture group. Dog gemmer begge typer parenteser data i capture groups:

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

Som et resultat vil vores capture groups indeholde følgende:

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

Eksempel

Lad os gøre sådan, at det første par parenteser kun grupperer, men ikke gemmer i capture groups:

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

Som et resultat vil vores tal være i den første capture group:

<?php var_dump($res[1]); // vil udskrive '123' ?>

Praktiske opgaver

Der er givet understrenge, opdelt i to dele af et vilkårligt antal par $@:

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

Find hver af sådanne understrenge og for hver fundet understreng, læg i den første capture group det, der står før separator, og i den anden capture group - det, der står efter separator.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis