 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
25.06.2004, 13:36
|
#1
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
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,
|
|
|
25.06.2004, 14:00
|
#2
|
|
TP-Insider
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
|
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
|
|
|
25.06.2004, 16:16
|
#3
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
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...
|
|
|
25.06.2004, 16:30
|
#4
|
|
TP-Insider
Registriert seit: Jan 2002
Ort: Akhragan
|
vielleicht hiermit:
[A-Z]\w{4,}
__________________
میں کانچ کھا سکتا ہوں اور مجھے تکلیف نہیں ہوتی.
நான் கண்ணாடி சாப்பிடுவேன், அதனால் எனக்கு ஒரு கேடும் வராது
|
|
|
25.06.2004, 16:55
|
#5
|
|
TP-Senior
Registriert seit: Apr 2002
Ort: Rhede/Ems
|
Genau das wars! Vielen Dank..
|
|
|
27.07.2004, 21:35
|
#6
|
|
TP-Junior
Registriert seit: Jul 2004
|
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).
|
|
|
31.07.2004, 23:29
|
#7
|
|
TP-Junior
Registriert seit: Jul 2004
|
nichtmal ein ansatz..??? 
|
|
|
01.08.2004, 15:31
|
#8
|
|
TP-Supporter
Registriert seit: Sep 2003
Ort: Wien, Österreich
|
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
|
|
|
01.08.2004, 18:25
|
#9
|
|
TP-Junior
Registriert seit: Jul 2004
|
kaum veränderungen..
als ergebnis kommt immer noch das gleiche raus..
"rest test1> test2 <test3"
|
|
|
01.08.2004, 19:17
|
#10
|
|
TP-Supporter
Registriert seit: Sep 2003
Ort: Wien, Österreich
|
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
|
|
|
01.08.2004, 19:45
|
#11
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
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. 
__________________
Give up yourself into the moment — The time is now.
|
|
|
22.09.2004, 22:43
|
#12
|
|
TP-Junior
Registriert seit: Jul 2004
|
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..
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:06 Uhr.
|
 |