regexp - Wörter mit mehr als 3 Buchstaben sowie Wörter mit Grossbuchstaben
Josephine Dreier
- php
0 Cheatah
Hi,
ich habe eine Variable mit einem Satz drin.
aus dieser Variable würde ich gerne alle Wörter exthrahieren die mehr als 3 Buchstaben haben und mit einem GROSSBuchstaben anfangen und in eine andere Variable schreiben!
da ich den regexp beim besten Willen nicht hinbekomme und schon diverse Anleitungen studiert habe würde ich mich über einen Tipp sehr freuen!
vielen Dank für jede Idee
Josephine
Hi,
da ich den regexp beim besten Willen nicht hinbekomme
woran hakt es denn? Denn Pattern für eine Wortgrenze lautet \b.
Cheatah
woran hakt es denn? Denn Pattern für eine Wortgrenze lautet \b.
es haakt leider so ziemlich an allem :(
Danke
Tag Josephine.
woran hakt es denn? Denn Pattern für eine Wortgrenze lautet \b.
es haakt leider so ziemlich an allem :(
Ich denke, dass dir Pattern-Syntax in PHP und preg_match_all() weiterhelfen könnten.
Siechfred
preg_match_all() ist klar, den Pattern-Syntax in PHP habe ich auch schon studiert, scheiter nur wiegesagt dran, daher die Nachfrage hier :/
Tag Josephine.
preg_match_all() ist klar, den Pattern-Syntax in PHP habe ich auch schon studiert, scheiter nur wiegesagt dran, daher die Nachfrage hier :/
Wie sieht denn dein Suchmuster bisher aus?
Siechfred
Tag Josephine.
preg_match_all() ist klar, den Pattern-Syntax in PHP habe ich auch schon studiert, scheiter nur wiegesagt dran, daher die Nachfrage hier :/
Dann noch ein Vorschlag: du könntest preg_split() mit preg_grep() kombinieren:
$satz = "einige Wörter mit mehr als drei Buchstaben. Oh Weh";
$woerter = preg_split("/[\s,.]+/", $satz);
$gesucht = preg_grep("/^[A-ZÄÖÜ]{1}[A-ZÄÖÜäöüß]{2,}$/", $woerter);
print_r($gesucht);
ergibt:
Array (
[1] => Wörter
[6] => Buchstaben
[8] => Weh
)
Die Satzzeichenbehandlung am Ende darfst du jetzt aber wirklich selber basteln.
Siechfred
Die Satzzeichenbehandlung am Ende darfst du jetzt aber wirklich selber basteln.
Siechfred
Wow vielen tausend Dank, das ist eine grosse Hilfe!
nun komme ich zurecht :)
Hi,
es haakt leider so ziemlich an allem :(
- wie definiere ich "mehr als 3 Buchstaben"?
ich nimm mal an die variable ist ein string, den könntest du mit explode() in die einzelnen wörter aufteilen, diese stehen dann in einem array. die einzelnen elemente im array sind die wörter, deren länge du mit strlen() bestimmen kannst, >3 = mehr als 3 zeichen
- die Wörter die mit einem grossen Buchstaben anfangen müssen wahrscheinlich ([A-Z].*) exthrahiert werden?
du kannst auch hingeh und dann von dem teilstring den ersten buchstaben bzw. das erste zeichen wählen, und mit ord() "umwandeln". dabei ist herauskommende zahl irgendwas zwisch 0 und 255 A ist nr.65 und Z ist nr.90 das heißt 65 <= $var <= 90 bamit hast du alle großbuchstaben zwischen A und Z.
Es gibt aber sicherlich auch einen anderen einfacheren weg. und ist nur als "notlösung" gedacht.
MfG