Ankündigung

Einklappen
Keine Ankündigung bisher.

Einen regulären Ausdruck identifizieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Einen regulären Ausdruck identifizieren

    Hallo,
    ich möchte einen String testen ob dieser einen Regulären Ausdruck enthält. Ich brauche also einen RegEx welchen einen beliebigen regulären Ausdruck identifiziert.

    Mein erster noch nicht ausgereifter Ansatz:
    PHP-Code:
    $string "~abc~isu";

    $ok preg_match('~^(.)[^\1]*\1[isum]*$~',$string); //1 
    Das Problem ist zu 100% schon gelöst. Hab es nur nicht gefunden unter den Milionen Suchmaschineneinträgen die kommen wenn der Begriff Regulärer Ausdruck auftaucht.
    Ich möchte möglichst keine Lösung mit try und error.
    Bin für Tipps und Links dankbar.

  • #2
    Was wäre denn kein regulärer Ausdruck?

    Denn "" ist ein regulärer Ausdruck. "abc" ist ein regulärer Ausdruck.

    Kommentar


    • #3
      Da die formale Syntaxprüfung ohnehin gemacht werden müsste: try & error.. aka, wende die RegExp an und werte den Rückgabewert aus.

      PHP-Code:
      $regexp '/r[gt/';
      $test 'testwert';
      $ret = @preg_match($regexp$test);
      var_dump($ret);
      // false 
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        lstegelitz, du hast mich auf die richtige Spur gebracht. Mein ersten Ansatz werden ich verwerfen.

        Gemeint sind hier natürlich nicht nur die regulären Ausdrücke im engeren Sinne, sondern die komplette Syntax für Suchmuster inklusive Begrenzer und optionalen Modifikatoren wie sie in PHP für die preg_* Funktionen benötigt werden.
        Beispiele für eine fehlerhafte Syntax:
        Code:
        '/r[gt/iu'
        '/r[gt]%iu' 
        '/r[gt]/iZ'
        Zwischendurch bin ich auch im Netz fündig geworden (How can I validate regex?). Da ich schon vor der eigentlichen Prüfung eine Fallunterscheidung brauche, werde ich dies hier

        PHP-Code:
        $regExIsValid = @preg_match($regexpnull) !== false
        verwenden.

        Kommentar

        Lädt...
        X