⊗ppPmRgSHy 238 of 447 menu

Het koppelteken binnen sets in PHP reguliere expressies

Het koppelteken - is ook een speciaal symbool binnen [] (maar daarbuiten - niet). Als je het koppelteken zelf nodig hebt als symbool - plaats het dan daar, waar het niet wordt geïnterpreteerd als scheidingsteken van een groep.

Waarom dit belangrijk is: je kunt per ongeluk een groep symbolen maken. Bijvoorbeeld, zo - [:-@] - je denkt dat je een dubbele punt, een koppelteken en een apenstaartje selecteert, maar in werkelijkheid krijg je een groep symbolen tussen : en @. Deze groep bevat de volgende symbolen: :, ;, ?, <, =, >.

Waar komen ze vandaan? Uit de ASCII-tabel - de dubbele punt heeft een lager nummer dan de apenstaart - en zo ontstaat er een groep. Dat wil zeggen, alle groepen worden gevormd volgens de ASCII-tabel (je kunt dit gebruiken als je wilt).

Hoe dit op te lossen: plaats het koppelteken waar het zeker niet wordt geïnterpreteerd als groepsymbool, bijvoorbeeld aan het begin of aan het einde (dat wil zeggen, na [ of voor ]).

Je kunt het koppelteken ook escapen - dan zal het zichzelf vertegenwoordigen, ongeacht de positie. Bijvoorbeeld, in plaats van [:-@] schrijf [:\-@] - en er is geen groep meer, maar drie symbolen - dubbele punt, koppelteken en apenstaartje @.

Voorbeeld

In het volgende voorbeeld is het zoekpatroon als volgt: cijfer 1, dan letter van 'a' tot 'z', dan cijfer 2:

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

Als resultaat wordt het volgende in de variabele opgeslagen:

'! 1-2 ! !'

Voorbeeld

Laten we nu het koppelteken escapen. Als resultaat is het zoekpatroon als volgt: cijfer 1, dan letter 'a', of koppelteken, of letter 'z', dan cijfer 2:

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

Als resultaat wordt het volgende in de variabele opgeslagen:

'! ! 1c2 !'

Voorbeeld

Je kunt het koppelteken eenvoudig verplaatsen, zonder het te escapen:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[az-]2#', '!', $str); ?>

Als resultaat wordt het volgende in de variabele opgeslagen:

'! ! 1c2 !'

Voorbeeld

In het volgende voorbeeld is het zoekpatroon als volgt: eerste symbool - dit zijn kleine letters of een koppelteken '-', dan twee letters 'x':

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-z-]xx#', '!', $str); ?>

Als resultaat wordt het volgende in de variabele opgeslagen:

'! Axx ! @xx'

Voorbeeld

In het volgende voorbeeld is het zoekpatroon als volgt: eerste symbool - dit zijn kleine, hoofd- letters of een koppelteken '-', dan twee letters 'x':

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-zA-Z-]xx#', '!', $str); ?>

Als resultaat wordt het volgende in de variabele opgeslagen:

'! ! ! @xx'

Voorbeeld

Je kunt het koppelteken tussen twee groepen plaatsen - daar zal het zeker geen extra groep creëren:

<?php $str = 'axx 9xx -xx @xx'; $res = preg_replace('#[a-z-0-9]xx#', '!', $str); ?>

Als resultaat wordt het volgende in de variabele opgeslagen:

'! ! ! @xx'

Praktische opdrachten

Gegeven een string:

<?php $str = 'xaz xBz xcz x-z x@z'; ?>

Vind alle strings volgens het volgende patroon: letter 'x', hoofd- of kleine letter of koppelteken, letter 'z'.

Gegeven een string:

<?php $str = 'xaz x$z x-z xcz x+z x%z x*z'; ?>

Vind alle strings volgens het volgende patroon: letter 'x', dan of dollarteken, of koppelteken of plusteken, dan letter 'z'.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren