⊗ppPmRgSHy 238 of 447 menu

Der Bindestrich innerhalb von Zeichenklassen in regulären PHP-Ausdrücken

Der Bindestrich ist auch ein Sonderzeichen innerhalb von [] (außerhalb hingegen nicht). Wenn Sie den Bindestrich selbst als Symbol benötigen - dann platzieren Sie ihn dort, wo er nicht als Trennzeichen für eine Zeichengruppe interpretiert wird.

Warum das wichtig ist: Sie können eine Zeichengruppe erstellen, ohne es zu bemerken. Zum Beispiel so - [:-@] - Sie denken, Sie wählen den Doppelpunkt, den Bindestrich und das @-Zeichen aus, aber tatsächlich ergibt sich eine Gruppe von Zeichen zwischen : und @. Zu dieser Gruppe gehören die folgenden Zeichen: :, ;, ?, <, =, >.

Woher kommen sie? Aus der ASCII-Tabelle - der Doppelpunkt hat eine niedrigere Nummer als das @-Zeichen - und so entsteht eine Gruppe. Das heißt, alle Gruppen werden gemäß der ASCII-Tabelle gebildet (was man sich bei Bedarf zunutze machen kann).

Wie man damit umgeht: Setzen Sie das Bindestrich-Symbol dorthin, wo es definitiv nicht als Symbol für eine Gruppe interpretiert wird, zum Beispiel an den Anfang oder an das Ende (d.h. nach [ oder vor ]).

Man kann den Bindestrich auch maskieren - dann wird er unabhängig von der Position sich selbst bedeuten. Zum Beispiel, anstelle von [:-@] schreibt man [:\-@] - und es gibt keine Gruppe mehr, sondern drei Zeichen - Doppelpunkt, Bindestrich und das @-Zeichen.

Beispiel

Im folgenden Beispiel ist das Suchmuster wie folgt: Ziffer 1, dann ein Buchstabe von 'a' bis 'z', dann Ziffer 2:

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

Als Ergebnis wird in die Variable Folgendes geschrieben:

'! 1-2 ! !'

Beispiel

Lassen Sie uns nun den Bindestrich maskieren. Im Ergebnis lautet das Suchmuster wie folgt: Ziffer 1, dann Buchstabe 'a', oder Bindestrich, oder Buchstabe 'z', dann Ziffer 2:

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

Als Ergebnis wird in die Variable Folgendes geschrieben:

'! ! 1c2 !'

Beispiel

Man kann den Bindestrich einfach umstellen, ohne ihn zu maskieren:

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

Als Ergebnis wird in die Variable Folgendes geschrieben:

'! ! 1c2 !'

Beispiel

Im folgenden Beispiel ist das Suchmuster wie folgt: erstes Zeichen - das sind Kleinbuchstaben oder Bindestrich '-', dann zwei Buchstaben 'x':

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

Als Ergebnis wird in die Variable Folgendes geschrieben:

'! Axx ! @xx'

Beispiel

Im folgenden Beispiel ist das Suchmuster wie folgt: erstes Zeichen - das sind Kleinbuchstaben, Großbuchstaben oder Bindestrich '-', dann zwei Buchstaben 'x':

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

Als Ergebnis wird in die Variable Folgendes geschrieben:

'! ! ! @xx'

Beispiel

Man kann den Bindestrich zwischen zwei Gruppen platzieren - dort wird er definitiv keine weitere Gruppe erzeugen:

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

Als Ergebnis wird in die Variable Folgendes geschrieben:

'! ! ! @xx'

Praktische Aufgaben

Gegeben sei der String:

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

Finden Sie alle Strings nach dem folgenden Muster: Buchstabe 'x', Groß- oder Kleinbuchstabe oder Bindestrich, Buchstabe 'z'.

Gegeben sei der String:

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

Finden Sie alle Strings nach dem folgenden Muster: Buchstabe 'x', dann entweder Dollar-Zeichen, oder Bindestrich oder Plus-Zeichen, dann Buchstabe 'z'.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen