Ankündigung

Einklappen
Keine Ankündigung bisher.

reguläre Ausrücke

Einklappen

Neue Werbung 2019

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

  • reguläre Ausrücke

    Hallo!

    unter http://regexp-evaluator.de/tutorial/ habe ich ein recht gutes Tutorial mit Evaluator gefunden.

    fyi

    Trotzdem: Gibt es eine GUTE Zusammenfassung - so als Spickzettel? Ich arbeite nicht täglich mit regulären Ausdrücken - da wäre so was doch recht hilfreich

    schönen Abend
    Bruno

  • #2
    http://www.regenechsen.de

    Kommentar


    • #3
      gibt es ein Programm, das einen regulären Ausdruck lexikalisch analysiert?

      Also im Prinzip "in menschliche Sprache" die Kurzschreibweise übersetzt?

      Bruno

      Kommentar


      • #4
        für mich zur Übung habe ich denin der PHP Dokumentation aufgeführten Ausrdruck vorgenommen:
        a[\s]+[^>]*?href[\s]?=[\s\"\']+(.*?)[\"\']+.*?>([^<]+|.*?)?<\/a>

        Daraus habe ich bis jetzt analysiert:
        a[\s]+[^>]*?href
        • 1 a Buchstabe a
          2 [\s]+ ein oder mehrere Whitespaces
          3 [^>]* kein oder mehrere "nicht >"
          4 ? ein Zeichen
          5 href das Wort href


        stimmt das?
        Bruno

        Kommentar


        • #5
          Richtig. Das schwierige an solchen Ausdrücken ist eigentlich, dass sie eben unübersichtlich aussehen, aber wenn du sie zerpfriemelst, gehts.

          Wenn du mal für dich einen RegExp schreiben willst, fang klein an. Schritt für Schritt mehr erkennen.

          Kommentar


          • #6
            Hier meine Analyse. Ist die korrekt?
            Code:
            1     a            Buchstabe a
            2     [\s]+        ein oder mehrere Whitespaces
            3     [^>]*        kein oder mehrere "nicht >"
            4     ?	          ein Zeichen
            5     href         das Wort href
            6     [\s]?        kein oder mehrere Leerzeichen
            7     =            Zeichen =
            8     [\s\"\']+    entweder ein oder mehrere mal: Leerzeichen, doppeltes oder einfaches Hochkomma
            9     (.*?)
                         ()    Suchpaatern, das gespeichert wird:
                         .*    kein oder mehrere Zeichen
                         ?     hier hebt das Fragezeichen die Gierigkeit der anderen Quantifizierer auf
            
            10    [\"\']+      entweder ein oder mehrere mal:  doppeltes oder einfaches Hochkomma
            11    .*?
                         .*    kein oder mehrere Zeichen
                         ?     hier hebt das Fragezeichen die Gierigkeit der anderen Quantifizierer auf
            12    >            geschlossene spitze Klammer
            13    ([^<]+|.*?)?
                         ()    Suchpattern, das gespeichert wird
                               kann keinmal oder mehrfach vorkommen
                         [^<]+ ein oder mehrere "nicht >"
                         |     oder
                         .*?   kein oder mehrere Zeichen

            Kommentar


            • #7
              Ja sieht richtig aus, wenn du mit Leerzeichen Whitespaces meinst, also auch Tabulatoren, Zeilenumbrüche etc.
              Dein Wissen sollte an Theorie reichen

              Kommentar


              • #8
                stimmt nicht ganz, habs nur überflogen aber [\s]? bedeutet kein oder ein mal. nicht kein oder mehrmals und eben alles whitespaces.

                Kommentar


                • #9
                  und [^>]*? gehört auch zusammen (interpretation zeile 3 und 4) und bedeutet einen 'nicht gierigen' ausdruck für 0 oder mehrere zeichen die nicht > sind in folge. nicht gierig meint, daß reg. Ausdrücke im allgemeinen versuchen möglichst viele Zeichen hintereinander zuzuordnen...

                  13 ([^<]+|.*?)?
                  Suchpattern, das gespeichert wird kann keinmal oder einmal vorkommen

                  Kommentar

                  Lädt...
                  X