Quantcast
Channel: Webworking
Viewing all articles
Browse latest Browse all 57

Simple Regex Language für PHP

$
0
0
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.


Viewing all articles
Browse latest Browse all 57