+ Antworten
Seite 2 von 9 ErsteErste 1 2 3 4 5 ... LetzteLetzte
Ergebnis 16 bis 30 von 121

Thema: [Workshop] Regular Expressions

  1. #16
    TP-Veteran holunda macht alles soweit korrekt Avatar von holunda
    Registriert seit
    Oct 2001
    Ort
    Oberau
    Beiträge
    1.867
    PHP-Code:
    $datum_deutsch $array[3].".".$array[2].".".$array[1
    ??, oder ich hab wieder alles falsch verstanden

  2. #17
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.631
    Ups - ich merke gerade, daß ich meine Frage mißverständlich formuliert habe. Was ich meinte, war, das Originaldatum 2003-05-26 direkt im Text ins deutsche Format 26.05.2003 zu wandeln.

    Und das geht mit einer einzigen regexp-Anweisung:

    perl: $Zeile =~ s/([0-9]{4})-([0-9]{2})-([0-9]{2})/$3.$2.$1/;

    php: $Zeile = preg_replace( "/([0-9]{4})-([0-9]{2})-([0-9]{2})/", "$3.$2.$1", $Zeile );


    Wie man sieht, arbeitet auch php in diesem Fall mit den $1, $2 und $3-Variablen...

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  3. #18
    TP-Veteran holunda macht alles soweit korrekt Avatar von holunda
    Registriert seit
    Oct 2001
    Ort
    Oberau
    Beiträge
    1.867
    bei deinem code kommt aber 26052003 heraus, oder?

  4. #19
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.631
    Nöh...
    Angehängte Grafiken  

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  5. #20
    TP-Veteran holunda macht alles soweit korrekt Avatar von holunda
    Registriert seit
    Oct 2001
    Ort
    Oberau
    Beiträge
    1.867
    verstehe, also wird bei preg_replace der Verknüpfungsoperator "." nicht benützt.

    Alles klar

  6. #21
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.631
    Versteh auch. Nee - in diesem Fall gilt der Punkt als ganz normales Textzeichen.

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  7. #22
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.631

    Noch 2 Bemerkungen zu den runden Klammern...

    [list=1][*]Die Klammern können auch ohne Probleme ineinander verschachtelt werden. Die Index-Zuordnung richtet sich dann nach den öffnenden Klammern: Die erste Klammer kriegt den Index 1, die nächste den Index 2 usw. Wenn wir in unserem Beispiel den kompletten Ausdruck zusätzlich in ein Klammerpaar setzen:

    /(([0-9]{4})-([0-9]{2})-([0-9]{2}))/

    so liefert der Index-1 das komplette (amerikanische) Datum zurück, Index-2 das Jahr, Index-3 den Monat und Index-4 den Tag.[*]Die Klammern dienen nicht nur der Resultatübergabe, sie sind auch bei der Strukturierung sehr nützlich - wie bei dem IP-Adressen-Beispiel. Auch hier können sämtliche Wiederholungsangaben verwendet werden. Beispiel:

    /^Diese regexp liefert( nicht)? wahr zurück.$/

    Hier ist's egal, ob im zu prüfenden Text "Diese regexp liefert nicht wahr zurück." oder "Diese regexp liefert wahr zurück." steht - die regexp ist auf jeden Fall wahr.
    [/list=1]


    Damit nicht nur ich denken muß, mal ne einfache Aufgabe:

    Wie müsste eine regexp aussehen, die uns aus einem HTML-Dokument aus allen Links die Domain-Bezeichnung rausfiltert? Also eine, die zB aus einem <a href="http://www.traum-projekt.com/forum/index.php?s="> das www.traum-projekt.com zurückgibt.
    Damit's einfacher wird, steht der komplette Link in einer Zeile. Damit's komplizierter wird, wollen wir auch eventuelle ftp-Domains nicht vernachlässigen...
    Geändert von webmichl (27.05.2003 um 10:42 Uhr)

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  8. #23
    TP-Insider TobiasKa ist auf einem guten Weg Avatar von TobiasKa
    Registriert seit
    Feb 2002
    Ort
    Burgkichen (Austria)
    Beiträge
    669
    leider hab ich den treat etwas spät gemerkt - bis jetzt komm ich ganz gut mit!
    danke für die super erklärungen und einleuchtenden beispiele - ohne die wäre ich changenlos

    nochmal kurz zu holunda: so werden die punkte als verbindung gewertet:
    PHP-Code:
    php$Zeile preg_replace"/([0-9]{4})-([0-9]{2})-([0-9]{2})/", $3.$2.$1$Zeile ); 
    Gruß
    Tobias

    Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
    Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
    [Karl Heinz Söhler]

  9. #24
    TP-Veteran holunda macht alles soweit korrekt Avatar von holunda
    Registriert seit
    Oct 2001
    Ort
    Oberau
    Beiträge
    1.867
    Krieg die Aufgabe leider nicht ganz hin

    PHP-Code:

    // Ausgangsstring
    $string "<a href='http://www.traum-projekt.com/forum/index.php?s='>";

    // Pattern
    $pattern "/<a href='(http|ftp):\/\/(.+)\/(.+)'>/";

    $erg preg_replace($pattern,"Protokoll: $1 &nbsp;&nbsp;&nbsp;Dom: $2 &nbsp;&nbsp;&nbsp;path: $3",$string);

    echo 
    $erg
    Erg:
    Protokoll: http Dom: www.traum-projekt.com/forum path: index.php?s=

  10. #25
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.631
    Schon ned schlecht......Dein Ansatz hat nur einen kleinen Denkfehler. Ich sach jetzt noch nix - evtl kommst ja selber - oder jemand anderes - drauf. Heute abend - ich schätz mal so gegen 21:00 - gibt's von mir die Auflösung.

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  11. #26
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.631

    Wie versprochen, die Auflösung...

    Um einen Link aus einem HTML-Dokument auszufiltern, muß man sich zunächst über den Aufbau eines Verweises Gedanken machen. Klar, er fängt mit einem <A an - aber dann? Die href-Angabe muß nicht zwingend als erster Parameter angegeben werden. Also müssen wir unserer regexp zunächst sagen: "Suche dir das <a und überspringe beliebig viele Zeichen bis zum Text href":

    /<a.+href=/

    Gut. Bei einem korrekt geschriebenem Code seht der Link in Hochkommata - aber nicht jeder Code ist korrekt geschrieben. Man kann aber davon ausgehen, daß der Link spätestens beim nächsten Blank oder beim schliessenden > endet - diese Zeichen also nicht enthält. Zusätzlich müssen wir berücksichtigen, daß sowohl einfache als auch doppelte Hochkommata möglich sind...

    /<a.+href=['"]?([^'"> ]+)/

    In der "Treffer-Variablen sollte nun der komplette Link stehen. Wir wollen aber nicht den Link, sondern nur die Domain. Also muß dieser Treffer weiter aufgedröselt werden. Wie Holunda schon richtig formuliert hat, müssen wir zwischen http und ftp untescheiden. Vorsichtshalber nehmen wir noch die https-Option mit:

    /<a.+href=['"]?(http[s]?|ftp):\/\/([^'"> ]+)/

    Das Fragezeichen in unserer neuesten Zufügung bezieht sich nur auf das s!

    Da hätten wir's doch schon fast! Die Bedingung der zweiten Klammer muss nur noch um ein / erweitert werden, dann wird beim ersten Slash / - wenn Unterverzeichnisse angegeben wurden - gestoppt. Wenn kein Unterverzeichnis angegeben wurde, wird der ganze Linktext übergeben:

    /<a.+href=['"]?(http[s]?|ftp):\/\/([^\/ "']+)/

    Indexwert-1 = Protokoll
    Indexwert-2 = Domain

    Das Teil ist noch nicht perfekt - Stuck Mojo findet garantiert wieder einen Pfad, der nicht passt.. - aber im Normalfall sollte es passen.

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  12. #27
    TP-Veteran holunda macht alles soweit korrekt Avatar von holunda
    Registriert seit
    Oct 2001
    Ort
    Oberau
    Beiträge
    1.867
    ahhh, habs vertanden,
    gibts noch sone nette Aufgabe heute?

  13. #28
    TP-Special Mod webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User webmichl lebt für das TP und seine User Avatar von webmichl
    Registriert seit
    Jun 2001
    Ort
    8°21' O 49°1' N
    Beiträge
    8.631

    Wink

    Original geschrieben von holunda
    ahhh, habs vertanden
    Sehr gut! Setzen!

    Neue Aufgabe: OK. Wie sieht's denn aus, wenn mehrere Verweise in einer Zeile stehen? Wie kriegen wir dann alle Domains?

    Die Frage ist übrigens nicht ganz so einfach, wie sie im Moment aussieht...

    Gruß, der Michl



    * * * if you want them to RTFM, make a better FM! * * *


  14. #29
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108

    Re: Wie versprochen, die Auflösung...

    Original geschrieben von webmichl
    Das Teil ist noch nicht perfekt - Stuck Mojo findet garantiert wieder einen Pfad, der nicht passt.. - aber im Normalfall sollte es passen.
    ...tststs
    Ne du, ich find nix falsches. Der scheint wie die Faust aufs Auge zu passen

  15. #30
    TP-Veteran holunda macht alles soweit korrekt Avatar von holunda
    Registriert seit
    Oct 2001
    Ort
    Oberau
    Beiträge
    1.867
    Original geschrieben von webmichl
    Die Frage ist übrigens nicht ganz so einfach, wie sie im Moment aussieht...
    ... is mir aufgefallen , habs nicht hingekriegt, weiß nichtmal einen Ansatz für eine Lösung

+ Antworten
Seite 2 von 9 ErsteErste 1 2 3 4 5 ... LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51