Nakedsoul: [REGEX] für bereich in url

hallo,
wie kann ich aus diesem link: http://www.example.com/title/tt0468569

via regex den code am ende auswählen mit den klammern? dieser code ganz am ende (besteht nur aus zahlen) nach den 2 Buchstaben tt (welche immer gleich bleiben)  wird benötigt.

lösungsansatz:

.*example.*/title/tt([0-9])/

  1. ich bin jetzt so weit das es funktioniert jedoch wenn hinten bei der url ein slash / kommt der slash mit den den substring aufgenommen wird...

    .*imdb.*/title/tt\S(.*)

    hierbei ,wenn die url so aussieht mit dem slash am ende funzt es nicht

    http://www.example.com/title/tt0468569/

    hat jemand ne idee und ne antwort warum [0-9] an der stelle nicht funzt??

    1. ok die lösung nach viel rumfaxen war diese:
      .*example.*/title/tt(.*)[/a-z0-9_-]

      frage bleibt:

      warum [0-9] an der stelle (.*) nicht funzt ??

      1. Hi!

        ok die lösung nach viel rumfaxen war diese:
        .*example.*/title/tt(.*)[/a-z0-9_-]

        Erstaunlicherweise, da du damit folgendes sagst:

        Ich möchte möglichst viele irgendwelche Zeichen (.*) Default = greedy nach tt bis eines der Zeichen a-z0-9 oder / kommt. Das würde ebenso auf:
        http://www.example.com/title/tt0468569/blabl/ passen und 0468569/blabl zurückgeben.

        Eleganter könnte sein:
        '~/tt([0-9]+)~'
        Nur alle Ziffern nach /tt zurückgeben.

        frage bleibt:

        warum [0-9] an der stelle (.*) nicht funzt ??

        Quantifier Sind dazu da, um die Menge gewünschter Zeichen anzugeben.

        In deinem ersten Beispiel:
        .*example.*/title/tt([0-9])/
        fehlt dieser und somit möchtest du nur String Stücke, die tt gefolgt von genau einem 0-9 gefolgt von einem / enthalten.

        Viel Erfolg,
        Jonny 5

        1. alles klar danke!
          das mit dem Quantifier + wußte ich nicht.

          funzt

      2. ok die lösung nach viel rumfaxen war diese:
        .*example.*/title/tt(.*)[/a-z0-9_-]

        Was willst Du denn nun? Davon, daß der string mit den gesuchten Zahlen endet hast du dich schon verabschiedet. Allerdings ist das auch egal, da Du kein Stringende im Suchmuster vorschreibst. Aber was soll das jetzt für eine Zeichenklasse sein und was willst du extrahieren?

        Wenn Du nur Zahlen willst, dann nimm nur Zahlen, wenn Du ein Stringende willst, dann nimm eins und wenn Du "/" zwischen den Zahlen und dem Stringende optional zulassen willst, dann laß es optional zu.

  2. wie kann ich aus diesem link: http://www.example.com/title/tt0468569

    via regex den code am ende auswählen mit den klammern? dieser code ganz am ende (besteht nur aus zahlen) nach den 2 Buchstaben tt (welche immer gleich bleiben)  wird benötigt.

    lösungsansatz:

    .*example.*/title/tt([0-9])/

    Zuerst sollten wir berücksichtigen dass mehrere Zahlen vorkommen können.
    Quantifier +
    ~/title/tt([0-9]+)~

    Es handelt sich um einen Pfad, der die URL abschliesst.
    Matche das Ende mit $
    ~/title/tt([0-9]+)$~

    Wir wollen aber berücksichtigen, dass der Pfad durch einen Slash abgeschlossen sein kann. /?

    ~/title/tt([0-9]+)/?$~

    Nicht zuletzt will ich sicher gehen, dass das, was ich matche garantiert nur auf eine url für http oder https zutrifft.
    Ich verwende \S+?

    ~https?://\S+?/title/tt([0-9]+)/?$~

    Dadurch sollten irrige Matches weitgehend ausgeschlossen sein.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische