Zeichensätze in regulären Ausdrücken von PHP
Die Zeichengruppen \d und \w sind nicht
sehr flexibel. Selbst eine so einfache Aufgabe
wie alle Buchstaben, aber keine Ziffern zu finden -
kann von ihnen nicht gelöst werden. Für solche Aufgaben
sollten eckige Klammern verwendet werden, die
die Operation ODER darstellen.
Eckige Klammern ersetzen ein Zeichen,
beliebig eines der aufgeführten innen. Zum Beispiel,
so: #x[abc]x# - sagen wir, dass
an den Rändern die Buchstaben 'x' stehen müssen, und innen
- ein Zeichen: entweder 'a', oder 'b',
oder 'c'.
Nach eckigen Klammern können Wiederholungsoperatoren
geschrieben werden. Zum Beispiel so: #x[abc]+x#
- sagen wir, dass innerhalb der 'x' eine
beliebige Anzahl von Zeichen 'a', 'b'
und 'c' - in beliebigen Kombinationen sein kann.
Man kann nicht nur Zeichen auflisten, sondern auch
Zeichengruppen erstellen, indem man zwischen zwei Zeichen
einen Bindestrich schreibt. Zum Beispiel so: #[a-d]#
- erhalten wir alle Zeichen von 'a' bis
'd'.
Lassen Sie uns Beispiele betrachten.
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' beliebige Buchstaben von 'a'
bis 'z':
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'! ! ! x@x'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' beliebige Buchstaben von 'a'
bis 'k':
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'! ! xmx x@x'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' beliebige Buchstaben von 'A'
bis 'Z':
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'xax ! xcx x@x'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' beliebige Ziffern von 0 bis 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'xax ! ! ! x@x'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' beliebige Ziffern von 3 bis 7:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'xax x1x ! ! x@x'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' beliebige Buchstaben von 'a'
bis 'z' oder Ziffern von 1 bis 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'! ! ! ! x@x'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' beliebige Buchstaben von 'a'
bis 'z' oder Buchstaben von 'A' bis
'Z':
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'! ! ! x5x x@x'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' beliebige Buchstaben von 'a'
bis 'z' oder die Ziffern 1, 2:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'! ! ! ! x3x'
Beispiel
In diesem Beispiel sieht das Suchmuster so aus:
zwischen den 'x' Buchstaben von 'a' bis 'z'
in der Anzahl von 1 und mehr:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'xx ! ! ! x123x xa3x'
Beispiel
Lassen Sie uns es so machen, dass die Anzahl der Buchstaben auch Null sein kann:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
Als Ergebnis wird in die Variable folgendes geschrieben:
'! ! ! x123x xa3x'
Praktische Aufgaben
Gegeben ist ein String:
<?php
$str = 'aba aea aca aza axa';
?>
Schreiben Sie einen regulären Ausdruck, der nach folgendem
Muster sucht: an den Rändern stehen die Buchstaben 'a',
und zwischen ihnen - der Buchstabe 'b', 'e'
oder 'x'.
Gegeben ist ein String:
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Schreiben Sie einen regulären Ausdruck, der nach folgendem
Muster sucht: an den Rändern stehen die Buchstaben 'a',
und zwischen ihnen - eine Ziffer von 3-er bis 6-er.
Gegeben ist ein String:
<?php
$str = 'aba aea afa aha aga';
?>
Schreiben Sie einen regulären Ausdruck, der nach folgendem
Muster sucht: an den Rändern stehen die Buchstaben 'a',
und zwischen ihnen - ein Buchstabe von a bis g.
Gegeben ist ein String:
<?php
$str = 'aba aea afa aha aga';
?>
Schreiben Sie einen regulären Ausdruck, der nach folgendem
Muster sucht: an den Rändern stehen die Buchstaben 'a',
und zwischen ihnen - ein Buchstabe von a bis f und von j bis z.
Gegeben ist ein String:
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Schreiben Sie einen regulären Ausdruck, der nach folgendem
Muster sucht: an den Rändern stehen die Buchstaben 'a',
und zwischen ihnen - ein Buchstabe von a bis f und von A bis D.
Gegeben ist ein String:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Schreiben Sie einen regulären Ausdruck, der nach folgendem
Muster sucht: an den Rändern stehen die Buchstaben 'a',
und zwischen ihnen - kleine lateinische Buchstaben,
ohne die anderen zu berühren.
Gegeben ist ein String:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Schreiben Sie einen regulären Ausdruck, der nach folgendem
Muster sucht: an den Rändern stehen die Buchstaben 'a',
und zwischen ihnen - kleine und große lateinische
Buchstaben, ohne die anderen zu berühren.
Gegeben ist ein String:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Schreiben Sie einen regulären Ausdruck, der nach folgendem
Muster sucht: an den Rändern stehen die Buchstaben 'a',
und zwischen ihnen - kleine lateinische Buchstaben
und Ziffern, ohne die anderen zu berühren.