Reguläre Ausdrücke

Ein paar Beispiele
Beispiel ausführen
Das Thema reguläre Ausdrücke ist ziemlich komplex aber eigentlich nicht kompliziert. Es gibt sehr viele Tutorials zu dem Thema, so dass man alle nötigen Informationen leicht finden kann. Richtig lernen kann man es aber nur durch intensives Ausprobieren. Hier ein paar einfache Beispiele die als Ausgangspunkt für eigene Versuche dienen können.
<?php

$example 
= <<<EOT
Aller Anfang ist schwer. 
Man fühlt sich als sei man mitten in der Sahara ausgesetzt. 
Aber mit etwas Praxis wird alles gut.
EOT;

$data explode(' ',$example);

function 
match_array ($arr$regexp)
{
    print 
'<span style="font-family:courier,monospace;letter-spacing:0.75em;">';
    foreach (
$arr as $a) {
        
$dummy preg_match($regexp$a);
        
$match $dummy
            
'+'
            
'-';
        
$mark preg_replace($regexp,'<strong class="inverse">\\0</strong>',$a);
        
printf ('%s %s<br>'$match,$mark);
    }
    print 
'</span>';

}


$regexps = <<< EOT
    #a#;Dieser Ausdruck passt auf alle Zeichenketten welche ein <em>a</em> beinhalten. Dabei wird zwischen Groß- und Kleinschreibung unterschieden.
    #A#;Dieser Ausdruck passt auf alle Zeichenketten welche ein <em>A</em> beinhalten. Dabei wird zwischen Groß- und Kleinschreibung unterschieden.

    #a#i;Dieser Ausdruck passt auf alle Zeichenketten welche ein <em>a</em> beinhalten. Dabei wird Groß- Kleinschreibung ignoriert.
    #^a#i;Dieser Ausdruck passt auf alle Zeichenketten welche mit einem <em>a</em> beginnen. Dabei wird Groß- Kleinschreibung ignoriert.

    #ei#i;Dieser Ausdruck passt auf alle Zeichenketten welche ein <em>ei</em> beinhalten. Dabei wird Groß- Kleinschreibung ignoriert.

    #a.s#i;Dieser Ausdruck passt auf alle Zeichenketten welche ein <em>a</em> und ein <em>s</em> beinhalten. Zwischen diesen Buchstaben kann genau ein beliebiger weiterer Buchstaben stehen. Dabei wird Groß- Kleinschreibung ignoriert.

    #a.?s#i;Dieser Ausdruck passt auf alle Zeichenketten welche ein <em>a</em> und ein <em>s</em> beinhalten. Zwischen diesen Buchstaben kann genau ein beliebiger, oder gar kein weiterer Buchstaben stehen. Dabei wird Groß- Kleinschreibung ignoriert.

    #a.*s#i;Dieser Ausdruck passt auf alle Zeichenketten welche ein <em>a</em> und ein <em>s</em> beinhalten. Zwischen diesen Buchstaben können beliebige weitere Buchstaben stehen. Dabei wird Groß- Kleinschreibung ignoriert.

    #a(.*)?s#i;Dieser Ausdruck passt auf alle Zeichenketten welche ein <em>a</em> und ein <em>s</em> beinhalten. Zwischen diesen Buchstaben können beliebige, oder auch gar keine, weitere Buchstaben stehen. Dabei wird Groß- Kleinschreibung ignoriert.

    #a$#i;Dieser Ausdruck passt auf alle Zeichenketten welche mit einem <em>a</em> enden. Dabei wird Groß- Kleinschreibung ignoriert.

    #^(a|s)#i;Dieser Ausdruck passt auf alle Zeichenketten welche mit einem <em>a</em> oder einem <em>s</em> beginnen. Dabei wird Groß- Kleinschreibung ignoriert.

    #^[a-m]#i;Dieser Ausdruck passt auf alle Zeichenketten mit Anfangsbuchstaben zwischen <em>a</em> und <em>m</em>. Dabei wird Groß- Kleinschreibung ignoriert.

    #^[^a]#i;Dieser Ausdruck passt auf alle Zeichenketten welche nicht mit <em>a</em> beginnen. Dabei wird Groß- Kleinschreibung ignoriert.

    #^[^a]*$#i;Dieser Ausdruck passt auf alle Zeichenketten welche kein <em>a</em> beinhalten. Dabei wird Groß- Kleinschreibung ignoriert.
    #^[b-z]*$#i;Dieser Ausdruck passt auf alle Zeichenketten welche kein <em>a</em> beinhalten. Dabei wird Groß- Kleinschreibung ignoriert.
    #(.)\\1#i;Dieser Ausdruck passt auf alle Zeichenketten welche einen Doppelbuchstaben, also z.B. <em>ll</em> beinhalten. Dabei wird Groß- Kleinschreibung ignoriert.
    #(.).\\1#i;Passt auf ein Muster wie z.B. <em>axa</em> oder <em>bnb</em>.

    #[A-Z]#;Dieser Ausdruck passt auf alle Zeichenketten welche einen Großbuchstaben beinhalten.
    #\W#;Dieser Ausdruck passt auf alle Zeichenketten welche ein Sonderzeichen beinhalten.
    #.{5}#;Dieser Ausdruck passt auf alle Zeichenketten mit mindestens fünf Zeichen.
    #^.{5}$#;Dieser Ausdruck passt auf alle Zeichenketten mit genau fünf Zeichen.
    #^.{3,5}$#;Dieser Ausdruck passt auf alle Zeichenketten mit einer Länge zwischen drei und fünf Zeichen.


EOT;
$regexp explode ("\n",$regexps);

echo <<< EOT
<style type="text/css">

strong.inverse
{
color:#ffffff;
background-color:#666666;
}
</style>
EOT;
foreach (
$regexp as $r) {
    if (
trim($r) == '') {
        continue;
    }
    list (
$re,$expl) = explode (';',$r);
    
printf ('<hr noshade="noshade" size=1><h1 style="color:#618989">%s</h1><p style="width:450px;">%s</p>'$re,$expl);
    
match_array($data,$re);
}
?>

Benutzte Funktionen


Hinweise zum DatenschutzImpressum © 2005-2008 S. Eickhoff