Wie muss ich Regex anwenden?
Requested and Answered by Admin on 28-Nov-2005 23:32 (376 reads)
Die Regex Ausdrücke sind sehr komplex allerdings auch sehr mächtig, so dass sich ein genauerer Blick darauf sicherlich lohnt.
Einfache Abfrage:
Jedes Suchmuster muss am Anfang und am Ende begrenzt werden dies kann man mit / machen. (nur bei preg()-Funktionen)
Findet alle Stellen an denen such vorkommt
Zeichenauswahl:
Ein Platzhalter für genau einen Buchstaben den man allerdings noch weiter einschränken kann.
[Aa] einfaches Aneinanderreihen von Zeichen, hier entweder "A" oder "a"
[btu] eines der Zeichen "b", "t" oder "u"
[0-5] Bindestrich für einen Bereich, hier also eine Ziffer von "0" bis "5"
[A-Za-z0-9] ein beliebiger Buchstabe oder eine beliebige Ziffer
[^a] ein beliebiges Zeichen außer "a"
PHP-Beispiel:
Gruppierung:
Mit runden Klammern kann man Zeichenketten gruppieren
PHP-Beispiel:
Oder:
Hiermit kann man einen oder Befehl erwirken.
| Entweder nachfolgende Ausdruck oder der voranstehende Ausdruck.
PHP-Beispiel:
Spezielle Zeichenauswahlen:
^ Der nachfolgender Ausdruck muss am Zeilenanfang stehen
$ Der voranstehende Ausdruck muss am Zeilenende stehen.
\b steht für die leere Zeichenkette am Wortanfang oder am Wortende.
\B steht für die leere Zeichenkette, die nicht den Anfang oder das Ende eines Wortes bildet.
\< steht für die leere Zeichenkette am Wortanfang.
\> steht für die leere Zeichenkette am Wortende.
\d : eine Zahl [0-9]
\D : keine Zahl [^0-9]
\w : ein Buchstabe, eine Zahl oder der Unterstrich [a-zA-Z_0-9]
\W : kein Buchstabe, keine Zahl und kein Unterstrich [^\w]
\s : Whitespace-Zeichen, meistens [ \f\n\r\t\v]
\S : alle Zeichen außer die Whitespace-Zeichen [^\s]
PHP-Beispiel:
Quantoren (Spezial Zeichen):
? : Der voranstehende Ausdruck ist optional, d. h. der Ausdruck kann 0x- oder 1x vorkommen.
+ : Der voranstehende Ausdruck muss mindestens 1x vorkommen, darf aber auch nx(beliebig oft) vorkommen.
* : Der voranstehende Ausdruck darf beliebig oft (auch 0x) vorkommen.
{min,} : Der nachstehende Ausdruck muss mindestens min-mal vorkommen.
{min,max} : Der nachstehende Ausdruck muss mindestens min-mal und darf maximal max-mal vorkommen.
{n} : Der nachstehende Ausdruck muss exakt n-mal vorkommen.
PHP-Beispiel:
Einfache Abfrage:
Jedes Suchmuster muss am Anfang und am Ende begrenzt werden dies kann man mit / machen. (nur bei preg()-Funktionen)
<?php
$zeichenkette = 'was suchst du denn';
$suchmuster = '/such/';
preg_match_all ( $suchmuster, $zeichenkette , $treffer, PREG_OFFSET_CAPTURE );
print_r($treffer);
?>
Findet alle Stellen an denen such vorkommt
Zeichenauswahl:
Ein Platzhalter für genau einen Buchstaben den man allerdings noch weiter einschränken kann.
[Aa] einfaches Aneinanderreihen von Zeichen, hier entweder "A" oder "a"
[btu] eines der Zeichen "b", "t" oder "u"
[0-5] Bindestrich für einen Bereich, hier also eine Ziffer von "0" bis "5"
[A-Za-z0-9] ein beliebiger Buchstabe oder eine beliebige Ziffer
[^a] ein beliebiges Zeichen außer "a"
PHP-Beispiel:
<?php
$zeichenkette = 'was suchst du denn';
$suchmuster = '/s[au]ch/'; //Findet alle Stellen bei denen 'sach' oder 'such' vorkommt
$suchmuster = '/[a-z]uch/'; //Findet alle Stellen die mit 'a-z' Beginnen und mit uch aufhören also z.B. 'auch' oder 'euch'
$suchmuster = '/[A-Za-z]uch/'; //Findet alle Stellen die mit 'a-z' und 'A-Z' Beginnen und mit 'uch' aufhören also z.B. 'Auch' oder 'euch'
$suchmuster = '/[^a]uch/'; //Findet alle Stellen die nicht mit 'a' anfangen und 'uch' enden also z.B. 'euch' aber kein 'auch'
preg_match_all ( $suchmuster, $zeichenkette , $treffer, PREG_OFFSET_CAPTURE );
print_r($treffer);
?>
Gruppierung:
Mit runden Klammern kann man Zeichenketten gruppieren
PHP-Beispiel:
<?php
$zeichenkette = 'was suchst du denn';
$suchmuster = '/(such)/'; //Findet alle Stellen bei denen 'such' vorkommt
preg_match_all ( $suchmuster, $zeichenkette , $treffer, PREG_OFFSET_CAPTURE );
print_r($treffer);
?>
Oder:
Hiermit kann man einen oder Befehl erwirken.
| Entweder nachfolgende Ausdruck oder der voranstehende Ausdruck.
PHP-Beispiel:
<?php
$zeichenkette = 'was suchst du denn';
$suchmuster = '/(such|du)/'; //Findet alle Vorkommen von 'such' und 'du'
preg_match_all ( $suchmuster, $zeichenkette , $treffer, PREG_OFFSET_CAPTURE );
print_r($treffer);
?>
Spezielle Zeichenauswahlen:
^ Der nachfolgender Ausdruck muss am Zeilenanfang stehen
$ Der voranstehende Ausdruck muss am Zeilenende stehen.
\b steht für die leere Zeichenkette am Wortanfang oder am Wortende.
\B steht für die leere Zeichenkette, die nicht den Anfang oder das Ende eines Wortes bildet.
\< steht für die leere Zeichenkette am Wortanfang.
\> steht für die leere Zeichenkette am Wortende.
\d : eine Zahl [0-9]
\D : keine Zahl [^0-9]
\w : ein Buchstabe, eine Zahl oder der Unterstrich [a-zA-Z_0-9]
\W : kein Buchstabe, keine Zahl und kein Unterstrich [^\w]
\s : Whitespace-Zeichen, meistens [ \f\n\r\t\v]
\S : alle Zeichen außer die Whitespace-Zeichen [^\s]
PHP-Beispiel:
<?php
$zeichenkette = 'was suchst du denn';
$suchmuster = '/^(such|du)/'; //Findet alle Vorkommen von 'such' und 'du' die am Anfang von '$zeichenkette' sind
$suchmuster = '/^(such|du)$/'; //Findet alle Vorkommen von 'such' und 'du' die am Ende von '$zeichenkette' sind
preg_match_all ( $suchmuster, $zeichenkette , $treffer, PREG_OFFSET_CAPTURE );
print_r($treffer);
?>
Quantoren (Spezial Zeichen):
? : Der voranstehende Ausdruck ist optional, d. h. der Ausdruck kann 0x- oder 1x vorkommen.
+ : Der voranstehende Ausdruck muss mindestens 1x vorkommen, darf aber auch nx(beliebig oft) vorkommen.
* : Der voranstehende Ausdruck darf beliebig oft (auch 0x) vorkommen.
{min,} : Der nachstehende Ausdruck muss mindestens min-mal vorkommen.
{min,max} : Der nachstehende Ausdruck muss mindestens min-mal und darf maximal max-mal vorkommen.
{n} : Der nachstehende Ausdruck muss exakt n-mal vorkommen.
PHP-Beispiel:
<?php
$zeichenkette = 'was suchst du denn';
$suchmuster = '/?(such)/'; //Findet alle Vorkommen von 'such' die '1 mal' oder '0 mal' vorkommen
$suchmuster = '/+(such)/'; //Findet alle Vorkommen von 'such' die '1 mal' oder 'n mal' vorkommen
$suchmuster = '/ *(such)/'; //Findet alle Vorkommen von 'such' die '0 mal' oder 'n mal' vorkommen
$suchmuster = '/(such){min, max}/'; //Findet alle Vorkommen von 'such' die mindestens 'min mal' vorkommen
$suchmuster = '/(such){min,}/'; //Findet alle Vorkommen von 'such' die mindestens 'min mal' vorkommen und maximal 'max mal' vorkommt
$suchmuster = '/(such){n}/'; //Findet alle Vorkommen von 'such' die exakt 'n mal' vorkommt
preg_match_all ( $suchmuster, $zeichenkette , $treffer, PREG_OFFSET_CAPTURE );
print_r($treffer);
?>
|
The comments are owned by the poster. We aren't responsible for their content.
|


