+ Antworten
Ergebnis 1 bis 12 von 12

Thema: Ganze Wörter aus Text filtern - preg_match()

  1. #1
    TP-Senior Kilroy macht alles soweit korrekt Avatar von Kilroy
    Registriert seit
    Apr 2002
    Ort
    Rhede/Ems
    Beiträge
    228

    Ganze Wörter aus Text filtern - preg_match()

    Hallo,

    Ich habe einen Text und möchte jetzt alle Wörter rausfiltern die mindestens vier Zeichen lang sind und mit einem Großbuchstaben beginnen.

    Bspl: $string = "Ein schöner Tagesausflug wäre im Urlaub nicht schlecht";

    Jetzt sollen die Wörter Tagesausflug und Urlaub einzeln durch ein komma getrennt ausgegeben werden.

    Die Ausgabe sollte dann so aussehen: Tagesausflug, Urlaub,

  2. #2
    TP-Insider HoRnominatoR ist auf einem guten Weg Avatar von HoRnominatoR
    Registriert seit
    Dec 2003
    Ort
    nienburg (raum hannover)
    Beiträge
    971
    mit wordwrap() splitten und dann in ner schleife durchlaufen lassen, per strlen() nachsehen wie lang das wort ist, dann den ascii wert ueberpruefen (gibt eventuell auch ne einfachere loesung) und dementsprechend in ein neues array schreiben, dessen elemente durch komma getrennt ausgegeben werden.
    in eile kam er,
    in schwarzem gewand,
    aus den tiefen des waldes,
    ein einsamer mann, ein geschoepf der freiheit,
    ein geschoepf ohne furcht,
    doch alle nannten sie ihn nur T O D

  3. #3
    TP-Senior Kilroy macht alles soweit korrekt Avatar von Kilroy
    Registriert seit
    Apr 2002
    Ort
    Rhede/Ems
    Beiträge
    228
    Das klingt nicht sehr elegant, lässt sich das nich auch mit preg_match() besser lösen? Ich bin für alle Vorschläge dankbar...

  4. #4
    TP-Insider #!/usr/bin/beer bringt sich richtig ein #!/usr/bin/beer bringt sich richtig ein Avatar von #!/usr/bin/beer
    Registriert seit
    Jan 2002
    Ort
    Akhragan
    Beiträge
    791
    vielleicht hiermit:
    [A-Z]\w{4,}
    میں کانچ کھا سکتا ہوں اور مجھے تکلیف نہیں ہوتی.
    நான் கண்ணாடி சாப்பிடுவேன், அதனால் எனக்கு ஒரு கேடும் வராது

  5. #5
    TP-Senior Kilroy macht alles soweit korrekt Avatar von Kilroy
    Registriert seit
    Apr 2002
    Ort
    Rhede/Ems
    Beiträge
    228
    Genau das wars! Vielen Dank..

  6. #6
    TP-Junior pirogi macht alles soweit korrekt
    Registriert seit
    Jul 2004
    Beiträge
    5
    hab ne ähnliche frage...

    ich möchte auch komplette sätze filtern können nach folgendem prinzip..
    PHP-Code:
    $M"test <test1> test2 <test3> test4 test5."
    soll gefiltert werden.. bzw. die worte in <> sollen eingelesen werden.. der satz wird verändert.. z.b. der erste buchstabe in jedem wort wird durch r ersetzt.. und dann sollen die vorher eingelesenen worte in <> zurückgeschrieben werden und die <> sollen wegfallen...

    PHP-Code:
    preg_match("/<(.*)>/"$M$match);
    [..]
    $M preg_replace("/<.*>/"$match[1], $M); 
    und zum schluss soll rauskommen:

    "rest test1 rest2 test3 rest4 rest5."
    (wichtig ist dass der text in <> unverändert bleibt...)

    mit der obengenannten funktion klappt es nur wenn <> nur einmal vorkommt.. sobald es mehrere sind, funktioniert es nicht.. es wird dann so ausgegeben..
    "rest test1> test2 <test3 rest4 rest5."
    Geändert von pirogi (27.07.2004 um 21:40 Uhr)

  7. #7
    TP-Junior pirogi macht alles soweit korrekt
    Registriert seit
    Jul 2004
    Beiträge
    5
    nichtmal ein ansatz..???

  8. #8
    TP-Supporter GodfatherDeluxe macht sich hier sehr viel Mühe
    Registriert seit
    Sep 2003
    Ort
    Wien, Österreich
    Beiträge
    381
    Zitat Zitat von pirogi
    hab ne ähnliche frage...
    PHP-Code:
    preg_match("/<(.*)>/"$M$match);
    [..]
    $M preg_replace("/<.*>/"$match[1], $M); 
    schon das versucht?:
    PHP-Code:
    preg_match("/(<(.*)>)+/"$M$match); 
    bin aber nicht unbedingt der meister was regexp angeht, ich glaub aber das sollte gehn
    Java != JavaScript

    "He who makes a beast of himself gets rid of the pain of being a man."
    Dr. Johnson

  9. #9
    TP-Junior pirogi macht alles soweit korrekt
    Registriert seit
    Jul 2004
    Beiträge
    5
    kaum veränderungen..
    als ergebnis kommt immer noch das gleiche raus..

    "rest test1> test2 <test3"

  10. #10
    TP-Supporter GodfatherDeluxe macht sich hier sehr viel Mühe
    Registriert seit
    Sep 2003
    Ort
    Wien, Österreich
    Beiträge
    381
    hm ja...hehe, wie gesagt von regexp hab ich ned viel ahnung Aber jemand anderer kann dir sicher da sicher helfen
    Java != JavaScript

    "He who makes a beast of himself gets rid of the pain of being a man."
    Dr. Johnson

  11. #11
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Schon mal probiert, dem Ausdruck die Gefrässigkeit zu nehmen?

    Code:
    preg_match("/(<(.*)>)+/U", $M, $match);
    Von Hause aus versucht preg_match() Posix-konform den maximal passenden Treffer zu finden, im konkreten Fall also den längsten vorkommenden String, der von spitzen Klammern eingeschlossen ist. Mit dem Modifier „U“ lässt sich das aber glücklicherweise abschalten.

  12. #12
    TP-Junior pirogi macht alles soweit korrekt
    Registriert seit
    Jul 2004
    Beiträge
    5
    ups.. ich dachte hier hat gar keiner mehr geantwortet..
    geht leider auch nicht.. als ergebnis kommt nur

    "rest test1"

    raus.. geht also nur bis zur ersten klammer und alles andere wird abgeschnitten..

+ Antworten

Ähnliche Themen

  1. text aus file auslesen und filtern
    Von jph im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 29.10.2002, 20:44
  2. Problem bei Text an Pfad ausrichten
    Von daydreamer im Forum Layout- & Vektor-Programme
    Antworten: 8
    Letzter Beitrag: 03.08.2002, 12:43
  3. text aus html-datei zu string?
    Von boom im Forum HTML & CSS
    Antworten: 4
    Letzter Beitrag: 13.01.2002, 18:54
  4. Layer dynamisch mit Text füllen
    Von daydreamer im Forum Dreamweaver & andere Webeditoren
    Antworten: 3
    Letzter Beitrag: 31.08.2001, 13:20
  5. Text für .htm Dokumente aus Javascript importieren?
    Von NicNac im Forum Webdesign allgemein
    Antworten: 4
    Letzter Beitrag: 26.04.2001, 09:05

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