Ankündigung

Einklappen
Keine Ankündigung bisher.

stück text rausholen

Einklappen

Neue Werbung 2019

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

  • stück text rausholen

    hallo,

    noch eine kleine frage, da ich nicht so mit pattern klarkomme:

    Code:
    ich bin hier im forum.
    wie fische ich das wort "hier" raus? also das wort ist variabel, und das andere drum ist fest. wie kann ich das machen?

    thx & mfg
    DarkManX

  • #2
    du gibst dem wort 'hier' einfach ne variable..-.-
    z.B. $x
    dann könntse immer $x anstatt hier verwenden löl
    versteh dich nicht ganz..bin da auch kein profi drin...
    deine frage isn bissel komisch...

    Kommentar


    • #3
      Das ist straight forward:

      PHP-Code:
      $s 'Das ist ein String mit einem Wort drin...  ;)';
      $pattern '(\bein\b)';
      preg_match ("/$pattern/"$s$match);

      $treffer $match[1];
      print (
      sprintf ("<pre>Das habe ich getroffen: %s</pre>", (isset ($treffer))?$treffer:'nix'));
      print_r ($match);

      $pattern '(wort)';
      preg_match ("/$pattern/i"$s$match);

      $treffer $match[1];
      print (
      sprintf ("<pre>Das habe ich getroffen: %s</pre>", (isset ($treffer))?$treffer:'nix'));
      print_r ($match); 
      Cheers, Marco

      Kommentar


      • #4
        @TRW
        so dumm bin ich auch nun wieder nicht

        @marsch
        naja, das wort muss ich doch eingeben, also nützt es nix wenn ich es selber eintrage und dann wieder rausnehme.

        so soll es laufen... zb:
        Code:
        Der Spieler heisst Hanz Peter und ist 24 Jahre alt.
        der name und das alter soll rausgenohmen werden. also alles zwischen "Der Spieler heisst " und " und ist" in eine variable gespeichert werden. was zwischen " und ist " und " Jahre alt." soll in eine andere variable gespeichert werden.
        es sollen viele von der struktur gleiche sätze ausgewertet werden, nur die daten, sprich der name und das alter sind anders. wie mache ich das? *dummfrag*

        mfg
        DarkManX

        Kommentar


        • #5
          Easy going:
          PHP-Code:
          <?php
          $s 
          'Der Spieler heisst Hanz Peter und ist 24 Jahre alt.'# oder aus 'ner Datenbank oder Textdatei...
          preg_match ('/Der\s+Spieler\s+heisst\s+(.+)\s+und\s+ist\s+([\d]+)\s+Jahre\s+alt\./s'$s$match);
          # voila
          print_r ($match);
          ?>
          Cheers, Marco

          Kommentar


          • #6
            PHP-Code:
            $s 'Das Urteil von Günther Schwätzer über Jacob Møller (ID #35985):';
            preg_match ('/Das\s+Urteil\s+von\s+Günther\s+Schwätzer\s+über\s+(.+)\s+(ID\s+#\s+([\d]+)\s+):/s'$s$match); 
            print_r ($match); 
            habe jetzt so gemacht, aber irgend was am patter ist falsch. habe echt 0 ahnung davon.

            achja, der soll denn namen rausnehmen egal aus wievielen namen er besteht. also er soll "Ronaldo" genau so rausfiltern wie "Leonardo de Deus Santos"...

            vielen dank!

            mfg
            DarkManX

            Kommentar


            • #7
              hmm, so wie es aussieht, möchtest du eine seite haben, wo alle spieler aufgezählt werden sollen. richtig?

              Wenn ja,
              dann würde ich das an deiner Stelle genau anders herum machen.
              Nur den namen und das alter in einer db speichern und dann den Satz ausgeben lassen.

              Kommentar


              • #8
                Hilfe! Woher soll der arme reg. Ausdruck wissen, was für Menschen Namen sind... Du brauchst schon vorher gewisse Annahmen über die Struktur Deiner Strings, um RegExen basteln zu können...
                Cheers, Marco

                Kommentar


                • #9
                  ich möchte keine auflistung, ich möchte eine auswertung eines textes.

                  Das Urteil von Günther Schwätzer über Jacob Møller (ID #35985):

                  das ist doch ein regulärer ausdruck. da ist immer der name, im beispiel "Jacob Møller" und die id "35985" anders. das andere bleibt immer stehen. die namen können aber wie gesagt 1-3 stellig sein.

                  verstehe nicht, was daran nciht regulär sein soll.

                  mfg
                  DarkManX

                  Kommentar


                  • #10
                    Und ich verstehe nicht was das bringen soll. Erkläre doch einfach mal was du im Endeffekt damit erreichen willst

                    Kommentar


                    • #11
                      Code:
                      Das Urteil von Günther Schwätzer über Hugo Gordillo (ID #15405):
                      
                      Der Junge ist eine Granate. Ein kommender Nationalspieler. Unbedingt halten ... oder kaufen, wenn noch nicht in der eigenen Mannschaft.
                      Kein Mitläufer, sondern ein selbstbewußter Mann, der noch einige Ziele erreichen will.
                      Der Junge ist schnell. Guter Mann.
                      Guter bis sehr guter Verteidiger oder Torwart. Ein Mann mit Zukunft.
                      Das ist ihr neuer Mittelfeldstar ... oder Torjäger. Der Junge hat in der Offensive echt was drauf. Fast so wie ich in meinen besten Jahren ... .
                      das ist eine spielerberatung bei einem mmog. nun will ich, dass dies in ein formular reinkopiert werden kann. dann splitet man die zeilen und wertet die dann einzeln aus. aus der ersten zeile brauche ich den namen und die id. bei den anderen kommt ne andere methode zum einsetz.

                      mfg
                      DarkManX

                      Kommentar


                      • #12
                        dass du am anfang einen namen gebracht hast der aus einem wort besteht und dann einen
                        mit 3 .. sowas musst du vorher "festlegen".

                        [text][namen, bestehen aus mind 1., max 3. worten, mit leerzeichen getrennt][text][zahl]

                        so muss das aus sehen ... du musst eine formel aufstellen, die auf alles zutrifft .. die damit
                        zurecht kommt, egal ob's nun 1 oder 3 oder evtl auch nur 2 sind .. das muss vorher
                        klein sein, bevor man anfängt den regex zu schreiben.

                        Kommentar


                        • #13
                          Das Urteil von Günther Schwätzer über Jacob Møller (ID #35985):
                          Das ist so kein reg. Ausdruck

                          PHP-Code:
                          <?php
                          $s 
                          'Das Urteil von Günther Schwätzer über Jacob Møller (ID #35985):';
                          preg_match ('/Das\s+Urteil\s+von\s+Günther\s+Schwätzer\s+über\s+(.+)\s+\(ID\s*#\s*([\d]+)\s*\):/is'$s$match);
                          print_r ($match);
                          ?>
                          Mit den Umlauten wird es allerdings auch nicht wesentlich leichter, pass auf den richtigen Zeichensatz auf Und es gibt einen kleinen aber feinen Unterschied zwischen \s+ und \s*, ersteres matcht 1 bis unendlich viele Whitespaces, letzteres beliebig viele, auch keines.

                          EDIT

                          Wenn die erste Zeile immer so aussieht und der Kommentator irrelevant ist, könnte man noch folgende Anpassung vornehmen:
                          PHP-Code:
                          <?php
                          $s 
                          'Das Urteil von Günther Schwätzer über Jacob Møller (ID #35985):';
                          preg_match ('/^Das\s+Urteil\s+von\s+(?:.+)\s+über\s+(.+)\s+\(ID\s*#\s*([\d]+)\s*\):/s'$s$match);
                          print_r ($match);
                          ?>
                          Das ist ein wenig performanter.
                          Cheers, Marco

                          Kommentar


                          • #14
                            Wenn die erste Zeile immer so aussieht und der Kommentator irrelevant ist, könnte man noch folgende Anpassung vornehmen:
                            PHP-Code:
                            <?php
                            $s = 'Das Urteil von Günther Schwätzer über Jacob Møller (ID #35985):';
                            preg_match ('/^Das\s+Urteil\s+von\s+(?:.+)\s+über\s+(.+)\s+\(ID\ s*#\s*([\d]+)\s*\):/s', $s, $match);
                            print_r ($match);
                            ?>
                            na so schwer war es auch nun wieder nicht... danke vielmals
                            eine frage noch: wieso speichert er die ganz zeile in das array? $s[0] wäre es.

                            mfg
                            DarkManX

                            Kommentar


                            • #15
                              Das liegt in der Natur von preg_match. $s[0] ist das erste Zeichen von $s
                              Cheers, Marco

                              Kommentar

                              Lädt...
                              X