Frank: Textpassagen aus einem String extrahieren

Hi,

wie kann ich am effektivsten aus einem String verschiedene Textpassagen extrahieren, also z.B. aus:

"Heute mitnehmen, morgen bezahlen"

die Passage "Heute mit zahl" extrahieren. Bringt mich substr da weiter?? Eher nicht, oder?

Grüße, Frank

  1. Hallo!

    "Heute mitnehmen, morgen bezahlen"

    die Passage "Heute mit zahl" extrahieren.

    "Heute mit zahl" kommt doch in "Heute mitnehmen, morgen bezahlen" nicht vor?!

    MfG, André Laugks

    --
    L-Andre @ gmx.de
    1. Hallo!

      "Heute mitnehmen, morgen bezahlen"

      die Passage "Heute mit zahl" extrahieren.

      "Heute mit zahl" kommt doch in "Heute mitnehmen, morgen bezahlen" nicht vor?!

      Guten Morgen,
      und wie siehts Sonntag Morgen aus?
      Kommts nunn darin vor? ;-)
      Grüße, Frank

      MfG, André Laugks

      1. Hallo!

        "Heute mit zahl" kommt doch in "Heute mitnehmen, morgen bezahlen" nicht vor?!

        Guten Morgen,
        und wie siehts Sonntag Morgen aus?
        Kommts nunn darin vor? ;-)
        Grüße, Frank

        Ähmmmm, .....

        Wo kommt "Heute mit zahl" in "Heute mitnehmen, morgen bezahlen" vor?

        MfG, André Laugks

        --
        L-Andre @ gmx.de
        1. Hallo André,

          Wo kommt "Heute mit zahl" in "Heute mitnehmen, morgen bezahlen" vor?

          Heute mitnehmen, morgen bezahlen
          ^^^^^ ^^^                 ^^^^

          • für was das gut sein soll, weiß ich allerdings auch nicht ...

          Grüße aus Nürnberg
          Tobias

          1. Hallo!

            Heute mitnehmen, morgen bezahlen
            ^^^^^ ^^^                 ^^^^

            • für was das gut sein soll, weiß ich allerdings auch nicht ...

            Diesen Zusammenhang habe ich auch schon gesehen.

            1. Nur wozu das gut seien soll, weiss ich auch nicht.
            2. IMHO ganz so einfach ist das auch nicht. Da wird man mit starken regulären Ausdrücken arbeiten müssen.

            MfG, André Laugks

            --
            L-Andre @ gmx.de
            1. Hallo!

              Heute mitnehmen, morgen bezahlen
              ^^^^^ ^^^                 ^^^^

              • für was das gut sein soll, weiß ich allerdings auch nicht ...

              Diesen Zusammenhang habe ich auch schon gesehen.

              1. Nur wozu das gut seien soll, weiss ich auch nicht.

              Hi,

              sagt mal, wenn Ihr in Eurer Stadt nach dem Weg gefragt werdet, muß der Fragende dann eigentlich auch zuvor begründen, warum er wann wohin will????
              IMHO ist es schietegal, ob der Antwortende einen Sinn dahinter erkennen kann, oder?
              Ihr solltet mal öfter denjenigen, die etwas fragen, soviel gesunden Menschenverstand zutrauen, daß sie ihre Gründe für eine Frage haben.
              BTW, auch ich sehe den Sinn der Frage nicht, aber ich bin sicher, der Fragesteller wird einen anderen Grund haben, sich hier fragend zu äußern, als den der Langeweile.
              Also frage ich nicht nach dem Grund der Frage, sondern antworte oder halte meine Klappe!
              Also, lieber Fragesteller wenn Du, wie mir scheint, die Positionen der gewünschten Teilstrings kennst, ist substr() Dein Freund.

              Norman

              1. Hallo Norman,

                IMHO ist es schietegal, ob der Antwortende einen Sinn dahinter erkennen kann, oder?

                Es ist aber oft einfacher eine hilfreiche Antwort zu geben, wenn man weiß was der OP damit bezwecken will. Ohne zu wissen warum der OP genau diese Zeichen haben will kann man nur rumraten - ob das dann hilft, sei mal dahingestellt ...

                Grüße aus Nürnberg
                Tobias

                1. Hallo Norman,

                  IMHO ist es schietegal, ob der Antwortende einen Sinn dahinter erkennen kann, oder?
                  Es ist aber oft einfacher eine hilfreiche Antwort zu geben, wenn man weiß was der OP damit bezwecken will. Ohne zu wissen warum der OP genau diese Zeichen haben will kann man nur rumraten - ob das dann hilft, sei mal dahingestellt ...

                  Klar, aber es ist wirklich einfach, die Frage zu beantworten, die er tatsächlich gestellt hat, von mir aus auch anhand des Beispiels.
                  Also, entweder er kennt nur die Positionen des Strings, die er braucht, dann ist meine vorhin genannte Antwort sicher nicht ganz schlecht ;-)
                  Oder er kennt das, was er an Strings möchte oder auch gerade nicht möchte, dan könnte str_replace() oder eregi_replace() für ihn ganz hilfreich sein. Oder halt strpos(), strrpos() und strlen().

                  Hab' ich was vergessen? ;-)

                  Norman

                  Grüße aus Nürnberg
                  Tobias

                  1. Hello,

                    Klar, aber es ist wirklich einfach, die Frage zu beantworten, die er tatsächlich gestellt hat, von mir aus auch anhand des Beispiels.

                    Der gesuchte String kam in der Vorlage nicht vor. Es gibt daher auch keine Funktion, ihn darin zu ersetzen.

                    Harzliche Grüße aus http://www.annerschbarrich.de

                    Tom

                    --
                    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                    Nur selber lernen macht schlau
                    1. Hello,

                      Klar, aber es ist wirklich einfach, die Frage zu beantworten, die er tatsächlich gestellt hat, von mir aus auch anhand des Beispiels.

                      Der gesuchte String kam in der Vorlage nicht vor. Es gibt daher auch keine Funktion, ihn darin zu ersetzen.

                      Kam er nicht?? Wirklich nicht??? Bist Du sicher?? Ganz sicher??

                      ;-)) Schau einfach nochmal nach :-)

                      Norman

                      Harzliche Grüße aus http://www.annerschbarrich.de

                      Tom

              2. Hello,

                sagt mal, wenn Ihr in Eurer Stadt nach dem Weg gefragt werdet, muß der Fragende dann eigentlich auch zuvor begründen, warum er wann wohin will????

                Na, dann frag doch mal in Berlin nach dem Weg zum "Bahnhof" oder in London nach dem Weg zur "Station". Ich wünsche Dir viel Erfolg...

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                1. Hello,

                  sagt mal, wenn Ihr in Eurer Stadt nach dem Weg gefragt werdet, muß der Fragende dann eigentlich auch zuvor begründen, warum er wann wohin will????

                  Na, dann frag doch mal in Berlin nach dem Weg zum "Bahnhof" oder in London nach dem Weg zur "Station". Ich wünsche Dir viel Erfolg...

                  und wo soll das Problem sein?

                  Norman

                  Harzliche Grüße aus http://www.annerschbarrich.de

                  Tom

                  1. Hello,

                    sagt mal, wenn Ihr in Eurer Stadt nach dem Weg gefragt werdet, muß der Fragende dann eigentlich auch zuvor begründen, warum er wann wohin will????

                    Na, dann frag doch mal in Berlin nach dem Weg zum "Bahnhof" oder in London nach dem Weg zur "Station". Ich wünsche Dir viel Erfolg...

                    und wo soll das Problem sein?

                    Norman

                    http://www.google.de/search?hl=de&q=Berlin+Bahnhof&btnG=Google-Suche&meta=lr%3Dlang_de
                    http://www.google.de/search?hl=de&q=London+Station&btnG=Suche&meta=

                    Wenn Du noch weitere Auskünfte wünschst, Frank Norman, dann solltest Du diese bitte im  kostenpflichtigen Teil der Foren anfordern.

                    Harzliche Grüße aus http://www.annerschbarrich.de

                    Tom

                    --
                    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                    Nur selber lernen macht schlau
                2. Moin Tom,

                  Na, dann frag doch mal in Berlin nach dem Weg zum "Bahnhof" ... Ich wünsche Dir viel Erfolg...

                  *lach* Da hast Du Dir ja auch ein richtiges Paradebeispiel rausgesucht ;)
                  Mir fällt auf Anhieb kein besseres Beispiel ein, um zwischen Eingebohrenen, Rucksackberlinern und Touries zu unterscheiden.

                  Gruß aus Berlin!
                  eddi

              3. Hi,

                sagt mal, wenn Ihr in Eurer Stadt nach dem Weg gefragt werdet, muß der Fragende dann eigentlich auch zuvor begründen, warum er wann wohin will????

                Das nicht, aber die Antwort hängt z.B. entscheidend davon ab, ob der Fragende zu Fuß, mit dem Auto oder mit den öffentlichen Verkehrsmitteln ans Ziel kommen will - es nützt einem Autofahrer z.B. wenig, wenn ich ihm einen Weg durch Hinterhöfe zeige, durch die er mit dem Auto gar nicht durchkommt - und einem Fußgänger wird die Strecke, die einen Abschnitt des Autobahnrings enthält, auch nicht helfen.

                cu,
                Andreas

                --
                Warum nennt sich Andreas hier MudGuard?
                Schreinerei Waechter
                Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
              4. Hi,

                Würdest Du bitte das Tofu unterlassen, danke.

                Heute mitnehmen, morgen bezahlen
                ^^^^^ ^^^                 ^^^^

                • für was das gut sein soll, weiß ich allerdings auch nicht ...

                Das nennt sich longest common substring und kann mit diesem Wissen bei Google gesucht werden. Gleich der erste Link führt zu fertigem PHP Code. (Nicht von mir getestet)

                sagt mal, wenn Ihr in Eurer Stadt nach dem Weg gefragt werdet, muß der Fragende dann eigentlich auch zuvor begründen, warum er wann wohin will????

                Ja, selbstverständlich, bei euch etwa nicht?

                IMHO ist es schietegal, ob der Antwortende einen Sinn dahinter erkennen kann, oder?

                Meistens macht es Sinn. Eigentlich immer. Erleichtert eine Antwort ungemein.
                Nur wenn einer nach den Logindaten fragt, solltest Du skeptisch werden.
                Es kommt hier nämlich sehr oft vor, das an einer nur vermeintlichen Lösung herumgedoktort wird, während das eigentlich Problem gar nicht erkannt wird.

                Ihr solltet mal öfter denjenigen, die etwas fragen, soviel gesunden Menschenverstand zutrauen, daß sie ihre Gründe für eine Frage haben.

                Aufgrund leidiger Erfahrung ist jedoch meistens das Gegenteil der Fall. Das hat aber auch genauso oft nichts mit mangelnder Intelligenz zu tun, sondern ist schlichte Betriebsblindheit.

                BTW, auch ich sehe den Sinn der Frage nicht, aber ich bin sicher, der Fragesteller wird einen anderen Grund haben, sich hier fragend zu äußern, als den der Langeweile.

                Mitunter bin ich mir selbst da nicht ganz sicher >;->

                Also frage ich nicht nach dem Grund der Frage, sondern antworte oder halte meine Klappe!

                Und warum hältst Du Dich dann nicht selber daran?

                Also, lieber Fragesteller wenn Du, wie mir scheint, die Positionen der gewünschten Teilstrings kennst, ist substr() Dein Freund.

                Da Du das eigentliche Problem nicht kennst, kannst Du das nicht mit Sicherheit behaupten. Aber dsa tust Du ja auch nicht durch das einschränkende "wenn...dann". Schwein gehabt, was? ;-)

                so short

                Christoph Zurnieden

  2. echo $begrueszung;

    wie kann ich am effektivsten aus einem String verschiedene Textpassagen extrahieren,

    Diese Frage ist zu pauschal gestellt.

    also z.B. aus: "Heute mitnehmen, morgen bezahlen"

    die Passage "Heute mit zahl" extrahieren. Bringt mich substr da weiter?? Eher nicht, oder?

    Dich würde weiterbringen, zuerst einmal die Regel klar zu definieren, was genau woraus entstehen soll.
    Wie die Implementierung in einer bestimmten Programmiersprache aussieht ist erst der zweite Schritt.

    echo "$verabschiedung $name";

    1. echo $begrueszung;

      wie kann ich am effektivsten aus einem String verschiedene Textpassagen extrahieren,

      Diese Frage ist zu pauschal gestellt.

      Nein, sie ist genauso gestellt, wie sie derzeit vor mir steht.

      also z.B. aus: "Heute mitnehmen, morgen bezahlen"

      die Passage "Heute mit zahl" extrahieren. Bringt mich substr da weiter?? Eher nicht, oder?

      Dich würde weiterbringen, zuerst einmal die Regel klar zu definieren, was genau woraus entstehen soll.

      Dich würde weiterbringen, nur dann auf Fragen zu antworten, wenn Du was zu sagen hast.
      Oder hast Du die Problemstellung nicht verstanden? Dann  frag doch einfach nach.

      Wie die Implementierung in einer bestimmten Programmiersprache aussieht ist erst der zweite Schritt.

      ...an dem ich bereits gestern ankam!

      Frank

      echo "$verabschiedung $name";

      Du Scherzkeks :-)

      1. Hello,

        Dich würde weiterbringen, nur dann auf Fragen zu antworten, wenn Du was zu sagen hast.
        Oder hast Du die Problemstellung nicht verstanden? Dann  frag doch einfach nach.

        Ich halte Dich für ganz schön unverschämt.
        Dedlfix hat gerade nach der Problemstellung nachgefragt.
        Du solltest Dich bei ihm hier lesbar entschuldigen. Sonst sehe ich in Zukunft schwarz für Antworten auf Deine Fragen.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hello,

          Dich würde weiterbringen, nur dann auf Fragen zu antworten, wenn Du was zu sagen hast.
          Oder hast Du die Problemstellung nicht verstanden? Dann  frag doch einfach nach.

          Ich halte Dich für ganz schön unverschämt.
          Dedlfix hat gerade nach der Problemstellung nachgefragt.
          Du solltest Dich bei ihm hier lesbar entschuldigen. Sonst sehe ich in Zukunft schwarz für Antworten auf Deine Fragen.

          Mach Dich nicht lächerlich!
          Schau Dir den Ton an, der hier oft angeschlagen wird und vergleiche.

          Und vor allem, lies Dir die Frage durch und du weißt, was gemeint ist.
          Besserwisserei ist ___mal wieder____ völlig unangebracht.

          In  diesem Sinne, Herr Advokat

          Frank

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          1. hi,

            Mach Dich nicht lächerlich!

            darin mit dir konkurrieren zu wollen dürfte den meisten nach dem lesen der ersten paar postings hier von dir bereits zwecklos erscheinen.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. echo $begrueszung;

        Diese Frage ist zu pauschal gestellt.

        Nein, sie ist genauso gestellt, wie sie derzeit vor mir steht.

        Du hast ein Beispiel gegeben, aber nicht die konkrete Aufgabenstellung dazu.

        Wenn du aus einem String Werte mit bekannter Position und Länge extrahieren willst, dann ist substr() die Lösung.

        Wenn du ein bestimmtes Muster hast, das du aus einem String extrahieren willst, dann lohnt es sich über reguläre Ausdrücke nachzudenken.

        Zwischen diesen beiden Varianten gibt noch viele andere Lösungsmöglichkeiten.

        Was willst du jetzt eigentlich wissen?

        echo "$verabschiedung $name";

        P.S. Danke Tom!

        1. Hallo dedlfix,

          echo $begrueszung;

          Notice: Undefined offset:  1 in https://forum.selfhtml.org/?t=103368&m=636491 on line 1

          allerdings trifft dies ebenso auf (ich bin geneigt an diese Stelle "alle" zu schreiben; weiß es aber nur für die überweigende Mehrzahl) Deine Postings zu ;)

          Gruß aus Berlin!
          eddi

        2. Du hast ein Beispiel gegeben, aber nicht die konkrete Aufgabenstellung dazu.

          Wenn du aus einem String Werte mit bekannter Position und Länge extrahieren willst, dann ist substr() die Lösung.

          Hi Tom,

          stimmt, es war ein Beispiel. Aber exakt so gemeint, wie Du einen Satz später schreibst.
          Meine Frage ist nun, ob substr() die einzige Lösung ist und ob ich nun -zig substr() hintereinander ausführen muß oder ob es sowas wie einen kombinierten substr() gibt, in dem ich viele Anfangs- und Endpunkte auf einmal angeben kann.

          Grüße

          Frank

          P.S. Danke Tom!

          P.S: Na klar doch ;-)

          1. Hello,

            stimmt, es war ein Beispiel. Aber exakt so gemeint, wie Du einen Satz später schreibst.
            Meine Frage ist nun, ob substr() die einzige Lösung ist und ob ich nun -zig substr() hintereinander ausführen muß oder ob es sowas wie einen kombinierten substr() gibt, in dem ich viele Anfangs- und Endpunkte auf einmal angeben kann.

            Um _was_ zu erreichen?
            Benötigt Du die Anfangspositionen der Referenzstrings, benötigst Du nur den Rest des Argumentes, vermindert um die Referenzstrings oder benötigst Du die Anzahl der Referenzstrings?

            Wahrscheinlich gibt es noch mehr Möglichkeiten, aber die aufgezählten habe ich selber schon gehabt.

            Nun beruhige Dich erstmal, vergegenwärtige Dir, dass es dem Fragenden i.d.R. an Erfahrungen fehlt und nicht der Gruppe der Antwortenden und mach Dir vor allem klar, dass Du hier nur gerne gelesen wirst, wenn Du auch selber (eines Tages) etwas beiträgst. Dass man sich da auch mal um Fachthemen oder kleine Menscheleien zofft, gehört auch dazu. Aber wenn Dir nicht EIner, sondern Mehrere im selben Tenor antworten, solltest Du Deine Position zumindest hinterfragen. Echte Nashörner (Ionesco) habe ich hier noch nicht gesehen.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
      3. hi,

        Diese Frage ist zu pauschal gestellt.

        Nein, sie ist genauso gestellt, wie sie derzeit vor mir steht.

        also ist sie bisher nicht durch weiteres nachdenken deinerseits vertieft worden?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hi,

    Bringt mich substr da weiter?? Eher nicht, oder?

    na sicher doch:

    echo substr($string, 0, 9) . " " . substr($string, 26, 30);

    Ungetestet, kannst ja bei bedarf die Positionen anpassen.
    Was du damit bezweckst, erschliesst m´sich mir aber nicht wirklich.

    MfG
    Manuel

    1. Hi Manuel,

      Hi,

      Bringt mich substr da weiter?? Eher nicht, oder?

      na sicher doch:

      echo substr($string, 0, 9) . " " . substr($string, 26, 30);

      Hm..geht sowas nicht ein bißchen raffinierter? ;-)

      Ungetestet, kannst ja bei bedarf die Positionen anpassen.

      Klar, danke.

      Was du damit bezweckst, erschliesst m´sich mir aber nicht wirklich.

      Glaub ich Dir aufs Wort, aber das muß ja auch nicht sein ;-))

      Trotzdem erstmal danke

      Frank

      MfG
      Manuel

      1. Hallo,

        echo substr($string, 0, 9) . " " . substr($string, 26, 30);

        Hm..geht sowas nicht ein bißchen raffinierter? ;-)

        Anstatt der Zahlen, die Du in unbekannten Texten nicht weißt, arbeite mit strpos(), strrpos() und strlen()

        Gruß aus Berlin!
        eddi

        1. Hallo,

          echo substr($string, 0, 9) . " " . substr($string, 26, 30);

          Hm..geht sowas nicht ein bißchen raffinierter? ;-)

          Anstatt der Zahlen, die Du in unbekannten Texten nicht weißt, arbeite mit strpos(), strrpos() und strlen()

          Gruß aus Berlin!
          eddi

          Hi Eddi,

          danke für den Tip. Ich schau mirs mal an.
          Gruß nach Berlin
          FRank

      2. Hi,

        Was du damit bezweckst, erschliesst m´sich mir aber nicht wirklich.

        Glaub ich Dir aufs Wort, aber das muß ja auch nicht sein ;-))

        Trotzdem erstmal danke

        Na wenn ich es verstehen würde, könnte ich dir aber vielleicht helfen.