Ankündigung

Einklappen
Keine Ankündigung bisher.

Quizfrage

Einklappen

Neue Werbung 2019

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

  • So in etwa. Per Google findest du aber auch ausführlichere Erklärungen. Auch zu den anderen Methoden.

    Beitrag editiert:
    […] Zu langsam…
    Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

    Kommentar


    • korrekt, nächste Frage nikosch
      "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

      Kommentar


      • Ich springe mal ein: Wie lassen sich PHP-Strings, die Escape-Chars enthalten, mit einem regulären Ausdruck korrekt herausfiltern?

        Wahrscheinlich braucht niemand eine Verdeutlichung, aber hey:

        Code:
        // Korrekt
        "s\""
        "t\\"
        "u\\\"\\\\\\"
        
        // Inkorrekt
        "v\"
        "w\\\\\"
        "x\"\"
        Es geht nur um den Ausdruck für die Strings. Kommentare (// "Hallo Welt") o. ä. brauchen nicht berücksichtigt zu werden.

        Edit: Pardon, merke gerade, dass der PHP-Highlighter die Darstellung zerstört hat.
        Edit 2: Jetzt müsste es passen.

        Kommentar


        • Ping. Frage ist aber verständlich, oder?

          Kommentar


          • PHP-Code:
            <?php
            header
            ("Content-Type: text/plain; charset=UTF-8");

            define("REGEXP_NORMAL_CHAR"'/^(((?<![\\\])[^\\\])|([\\\].))*$/');

            $strings array_map("rtrim"file("test.txt"));

            for (
            $i 0$x count($strings); $i $x; ++$i) {
                echo (int)
            preg_match(REGEXP_NORMAL_CHAR$strings[$i]) . " : " $strings[$i] . PHP_EOL;
            }
            ?>
            test.txt
            Code:
            s\"
            t\\
            u\\\"\\\\\\
            v\
            w\\\\\
            x\"\
            Ausgabe:
            Code:
            1 : s\"
            1 : t\\
            1 : u\\\"\\\\\\
            0 : v\
            0 : w\\\\\
            0 : x\"\
            Hoffe es klappt nicht nur zufällig. Also im RegExp wird getestet:
            - treffe jedes Zeichen, das kein Backslash ist [^\\\] und dem kein Backslash vorausgeht (?<![\\\]) (Negative Lookbehind, der Inhalt des Lookbehind wird nicht als Treffer angesehen ["mitgefressen"], sondern nur als Bedingung angesehen), oder
            - treffe die Zeichengruppe Backslash [\\\] plus beliebiges Zeichen . (inklusive Backslash selbst)

            Diese Kombination kann sich 0 .. n mal * wiederholen. Leerstrings sind also auch gültig.
            "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

            Kommentar


            • Ich glaube ich habe das früher irgendwie so gemacht

              PHP-Code:
              '#(\\\\|\\["\']|[^\\])*#' 
              Klappt so wahrscheinlich nicht direkt, aber so ähnlich..
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • Zitat von Chriz Beitrag anzeigen
                PHP-Code:
                <?php
                header
                ("Content-Type: text/plain; charset=UTF-8");

                define("REGEXP_NORMAL_CHAR"'/^(((?<![\\\])[^\\\])|([\\\].))*$/');

                $strings array_map("rtrim"file("test.txt"));

                for (
                $i 0$x count($strings); $i $x; ++$i) {
                    echo (int)
                preg_match(REGEXP_NORMAL_CHAR$strings[$i]) . " : " $strings[$i] . PHP_EOL;
                }
                ?>
                test.txt
                Code:
                s\"
                t\\
                u\\\"\\\\\\
                v\
                w\\\\\
                x\"\
                Ausgabe:
                Code:
                1 : s\"
                1 : t\\
                1 : u\\\"\\\\\\
                0 : v\
                0 : w\\\\\
                0 : x\"\
                Hoffe es klappt nicht nur zufällig. Also im RegExp wird getestet:
                - treffe jedes Zeichen, das kein Backslash ist [^\\\] und dem kein Backslash vorausgeht (?<![\\\]) (Negative Lookbehind, der Inhalt des Lookbehind wird nicht als Treffer angesehen ["mitgefressen"], sondern nur als Bedingung angesehen), oder
                - treffe die Zeichengruppe Backslash [\\\] plus beliebiges Zeichen . (inklusive Backslash selbst)

                Diese Kombination kann sich 0 .. n mal * wiederholen. Leerstrings sind also auch gültig.
                laut aufgabenstellung wird der string aber noch von 2 " umschlossen...
                [B]PHP4?!?[/B]>>>[B]Aktuelle[/B] PHP Version: [B]5.2.11 || 5.3.0
                [URL="http://en.opensuse.org/Factory/News"]Suse 11.2 *vorfreude*[/URL]
                [/B]

                Kommentar


                • Dachte die wären nur zur Kenntlichmachung:
                  PHP-Code:
                  <?php
                  define
                  ("REGEXP_NORMAL_CHAR"'/^["](((?<![\\\])[^\\\])|([\\\].))*["]$/');
                  ?>
                  "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

                  Kommentar


                  • Soweit ich das beurteilen kann, scheinen eure Ausdrücke beide generell zu funktionieren.

                    Ich habe mal versucht, sie zu vereinheitlichen und irgendwie lesbar zu formatieren. Die ersten beiden Ansätze definieren eine Regel, welche Zeichen(folgen) von links nach rechts voranschreitend in einem String enthalten sein dürfen, der dritte Ansatz geht sozusagen umgekehrt vor und definiert, welche Zeichenfolge ein gültiges String-Ende ergibt.

                    (Mag sein, dass sich da noch was optimieren lässt.)

                    Chriz

                    Code:
                    /
                    ([\'"])
                    (?:
                        (?<!\x5C) # treffe jedes Zeichen, dem kein Backslash vorausgeht
                        [^\x5C]   # und das kein Backslash ist
                        |
                        \x5C.     # oder treffe die Zeichengruppe Backslash plus beliebiges Zeichen
                    )*?
                    \1
                    /sx
                    nikosch

                    Code:
                    /
                    ([\'"])
                    (?:
                        \x5C{2} # treffe zwei Backslashes
                        |
                        \x5C.   # oder einen Backslash und ein beliebiges Zeichen
                        |
                        [^\x5C] # oder ein Zeichen, das kein Backslash ist
                    )*?
                    \1
                    /sx
                    mermshaus

                    Code:
                    /
                    ([\'"])
                    .*?              # treffe beliebige Zeichen
                    (?:
                        $            # bis das Eingabeende erreicht ist (optional)
                        |
                        (?<!\x5C)    # oder bis ein Anführungszeichen, dem eine gerade Anzahl
                        (?:\x5C{2})* #  Backslashes (egalisieren sich) vorausgeht, vor denen kein
                        \1           #  Backslash steht, erreicht wird
                    )
                    /sx
                    Irgendwie sind eure Ausdrücke viel mehr "to the point".

                    Okay, der Nächste bitte.

                    Kommentar


                    • Es gilt eine BNF-Grammatik für die Analyse von Zeitangaben zu entwerfen. Alle folgenden Beispiele sollen akzeptiert werden:
                      Code:
                      3pm
                      6:27pm
                      22:31
                      2:05
                      2:05am
                      Wie die Lösung gefunden wird - ob gewußt oder ergooglet - ist egal. Nur nachschlagen (in diesem Buch, Seite 266, Lösung 6) zählt nicht (es muss verstanden werden)
                      "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

                      Kommentar


                      • Haha laut Aufgabenstellung würde das reichen:
                        Code:
                        <time> ::= 3pm | 6:27pm | 22:31 | 2:05 | 2:05am
                        Gut ich denke du wolltest auf etwas anderes heraus

                        Code:
                        <time> ::= <withoutEnd> | <withEnd>
                        
                        <withoutEnd> ::= <hourA> | <hourA> ':' <minute>
                        <hourA> ::= 0 | ... | 23
                        <minute> ::= 0 | ... | 59
                        
                        <withEnd> ::= <hourB> <end> | <hourB> ':' <minute> <end>
                        <hourB> ::= 1 | ... | 12
                        <end> ::= 'am' | 'pm'
                        Erklärung: <withoutEnd> sind alle Zeitangaben bei denen kein am/pm vorkommt, also die zeit von 0:00 bis 23:59 Uhr bzw. 0 bis 23 Uhr geht. <withEnd> hat die Endung am oder pm dafür gehen die zeiten von 1:00 bis 12:59 Uhr bzw. 1 bis 12 Uhr.

                        Je nach Definition welche Zeiten nun möglich sein können müssen die Regeln halt bissl verändert werden.

                        Und wo wir gerade bei kontextfreien Grammatiken sind
                        Mit welchem Algorithmus lässt sich überprüfen ob ein Wort in einer kontextfreien Grammatik liegt? In welcher Form muss die kontextfreie Grammatik vorliegen? Welche Laufzeit hat der Algorithmus?

                        Kommentar


                        • Puh, auflösen
                          "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

                          Kommentar


                          • Oh die Quizfragen gibt es ja immer noch

                            Um das Wortproblem für kontextfreie Sprachen zu lösen gibt es den CYK-Algorithmus (Cocke-Younger-Kasami). Dafür muss die kontextfreie Grammatik in Chomsky-Normalform vorliegen. Laufzeit liegt in O(n^3).

                            Nächste Frage Chriz fürs wieder entdecken des Threads!

                            Kommentar


                            • Bin nicht sicher, ob ich die Frage schonmal gestellt hab (ist meine Standard-Quizfrage ):

                              Ein freundlicher Wandersmann auf dem Weg zu einer Berghütte kommt an eine Weggabelung und weiß nicht, ob links oder rechts. Er weiß aber, dass einer der Wege zur Berghütte, der andere in einen finsteren Wald führt, aus dem noch keiner je wieder herausgefunden hat. Auch weiß er, dass in dem Haus an der Gabelung zwei Zwillings-Schwestern wohnen, die den Weg kennen, aber nur eine Frage danach erlauben. Leider ist die eine als Lügnerin bekannt, die andere sagt aber immer die Wahrheit. Er scheppert an der Tür und eine der Schwestern öffnet, er weiß nicht welche.

                              Welche Frage stellt er, um den richtigen Weg zu erfahren?
                              "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

                              Kommentar


                              • Das ist wirklich ein Klassiker
                                [COLOR="#F5F5FF"]--[/COLOR]
                                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                                [COLOR="#F5F5FF"]
                                --[/COLOR]

                                Kommentar

                                Lädt...
                                X