simplecontent

PHP Snippets und Beispiele

Inhaltsverzeichnis A-Z Register
Beispiel ausführen

Reguläre Ausdrücke

Ein paar Beispiele

Das Thema reguläre Ausdrücke ist ziemlich komplex. Richtig lernen kann man es nur durch intensives Ausprobieren. Hier daher nur ein paar einfache Beispiele die als Ausgangspunkt für eigene Versuche dienen können. Das PHP Code Beispiel:
<?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.
    #.#;Dieser Ausdruck passt auf alle Zeichenketten mit mindestens fünf Zeichen.
    #^.$#;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);
}
?>

Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.