Simple Regex Language für PHP

Simple Regex Language für PHP

Simple Regex Language ist eine sehr interessante Bibliothek für PHP. Regex sind eine Sache die zum einen durchaus komplex werden können, zum anderen auch durchaus schwer zu Erlernen / Verstehen sind. Ich weiß ehrlich gesagt nicht wie viele Stunden ich schon damit zugebracht habe komplexe Regex für URL-Rewrites von Agenturen zu erstellen. Ich hatte seinerzeit sogar ein Tutorial für Regex erstellt.

SRL ist eine interessante Library für PHP, die versucht Regular Expressions in eine lesbare Form zu bringen. Nicht das es so etwas nicht schon gäbe,  aber das Ergebnis von SLR ist dennoch recht interessant. So erstellt es aus:

/^(?:[0-9]|[a-z]|[\._%\+-])+(?:@)(?:[0-9]|[a-z]|[\.-])+(?:\.)[a-z]{2,}$/i

in der SRL Syntax folgende Anweisung:

begin with any of (digit, letter, one of "._%+-") once or more,
literally "@",
any of (digit, letter, one of ".-") once or more,
literally ".",
letter at least 2 times,
must end, case insensitive

Das Konzept der Sprache ist durchaus etwas weiter gefasst. Die Bibliothek existiert nämlich nicht nur für PHP, sondern für fast jede größere Programmiersprache inklusive JavaScript. Direkt in PHP sieht das Ganze dann so aus:

$query = SRL::startsWith()
    ->anyOf(function (Builder $query) {
        $query>digit()
            ->letter()
            ->oneOf('._%+-');
    })->onceOrMore()
    ->literally('@')
    ->anyOf(function (Builder $query) {
        $query->digit()
            ->letter()
            ->oneOf('.-');
    })->onceOrMore()
    ->literally('.')
    ->letter()->atLeast(2)
    ->mustEnd()->caseInsensitive();

Ganz interessant wie ich finde, man sollte sich allerdings auch mit der Geschwindigkeit innerhalb der einzelnen Sprachen beschäftigen. Regex an sich sind in der Regel schon langsam und eine eigene Sprache davor zu setzen wird es nicht besser machen. Dennoch kann die Library für viele eine große Hilfe sein. Zur allgemeinen Homepage der Simple Regex Language geht es hier entlang. Die PHP-Umsetzung findet sich hier. Und die Umsetzung für weiter Sprachen kann hier gefunden werden.

Ähnliche Beiträge

mysql_connect vs. mysql_pconnect Es gibt durchaus Blog-Beiträge, von denen man glaubt oder hofft, dass man sie eigentlich nicht schreiben braucht, dieser ist einer davon! Da ich mich ...
Sinnvolles HTML in PHP mit dem HTML Purifier Es kommt im Leben eines Programmierers stets der Punkt, wo er sich durch die Weiten des HTML graben, und es insbesondere mit PHP interpretieren muss. ...
Tutorial Regular Expressions: Wiederholungen In den bisherigen Teilen des Tutorials haben wir Elemente immer so gesucht, das sie an einer bestimmten Stelle vorkommen mussten. Dies ist eher selten...
Amazon Web Services nur noch mit Signatur Kaum schreibt man mal ein mehrteiliges Tutorial, schon ändert Amazon mal wieder was und nichts stimmt mehr :) Ich könnte jetzt ziemlich fluchen, bring...

Schreibe einen Kommentar