Ankündigung

Einklappen
Keine Ankündigung bisher.

2 Regex in PHP kompatible Syntax übersetzen

Einklappen

Neue Werbung 2019

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

  • 2 Regex in PHP kompatible Syntax übersetzen

    Hi,

    ich kenne mich mit Regex kein bisschen aus und habe mir nun von einer DB im Internet diese 2 Regex ausgesucht.
    Das eine Funktioniert nicht (Gibt einen Compiler Fehler wegen dem &) und das andere hätte ich gerne einen Tick abgeändert und wäre klasse wenn mir jemand dabei helfen könnte diese beiden Regex für mich nutzbar zu machen.

    Das erst und einfache Regex von den beiden:
    Code:
    ^([1-zA-Z0-1@.s]{1,255})$
    Das hätte ich gerne ganz leicht abgeändert, das nicht nur Buchstaben von a bis z benutzt werden können sondern auch äöüß, ist das möglich?


    Das zweite sehr komplizierte Regex würde ich gerne "nur" PHP kompatibel gemacht bekommen.
    Code:
    ^(?i:(?<local_part>[a-z0-9!#$%^&*{}'`+=-_|/?]+(?:\.[a-z0-9!#$%^&*{}'`+=-_|/?]+)*)@(?<labels>[a-z0-9]+\z?.*[a-z0-9-_]+)*(?<tld>\.[a-z0-9]{2,}))$

    Es wäre klasse wenn ihr mir dabei helfen könntet.


    mfg
    NoiZy

  • #2
    Also die erste RegExp ist mir ein bisschen suspekt, da ich eine Schreibweise wie "1-z" noch nie gesehen habe. Zudem macht die Aufteilung "1-z" und "0-1" auch nicht viel Sinn, dann könnte man ja einfach "0-9" und "a-z" schreiben. Zudem macht die zusätzliche Aufzählung von "s" auch nicht wirklich Sinn. Mit welcher Programmiersprache wird denn diese RegExp eingesetzt?

    So könnte es vielleicht gehen:
    Code:
    ^([0-9a-zA-Zäöüß@.]{1,255})$
    Wenn du preg-Funktionen benutzt, kannst du auch "A-Z" weglassen, dafür die Option "i" für "case insensitive" setzen.
    Aber das ist nur ein in die Luft geratener Versuch, da ich nicht genau weiss, aus welcher Programmiersprache das Ganze kommt und was damit bezweckt werden soll. Sind die ä,ö,ü und ß denn so im Text oder als HTML-Entities? Dann müsste die RegExp nämlich anders aussehen.

    Um die zweite RegExp nur annäherungsweise umsetzen zu können, muss ich wissen, was sie bezwecken soll. Komplexere RegExp versteht meistens nur der, der sie geschrieben hat (genau wie Perl ^^).

    Kommentar


    • #3
      Erst einmal danke für deine Antwort, das erste ist damit erledigt, aber das zweite ist noch offen, wer will sich daran versuchen?

      mfg

      Kommentar


      • #4
        Hi,

        Wofür soll denn das zweite Pattern sein? Sieht nach einer Emailprüfung aus.

        Gruß Thomas

        Kommentar


        • #5
          das ist richtig

          mfg

          Kommentar


          • #6
            Hi,

            Ein Pattern was ich mal gemacht habe.

            PHP-Code:
            ereg("^[.]{0}[A-z0-9.!?#$&%*+-/=~^_`'|{}]*[.]{0}[@]{1}([a-zA-Z0-9]{1,63}){1}([.]{1}[a-zA-Z0-9]{1,63})*$"$pString
            Gruß Thomas

            Kommentar


            • #7
              FILTER_VALIDATE_EMAIL von PHP verwendet zur Zeit (PHP 5.2.5) den regulären Ausdruck
              /^((\\\"[^\\\"\\f\\n\\r\\t\\b]+\\\")|([\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]+(\\.[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]+)*))@((\\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\\-])+\\.)+[A-Za-z\\-]+))$/D
              Das geht allerdings nicht mit ereg sondern mit preg_match

              Kommentar

              Lädt...
              X