PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : alle Wörter in einem String mit bestimmtem Suchkriterium durchsuchen


pabera
29.03.2009, 17:04
Hallo,

Ich habe eine kleine Frage, da ich mich recht schlecht mit regulären Ausdrücken auskenne.

Folgendes Problem, ich habe eine Liste mit Nachnamen, die ich durchsuchen möchte. Gebe ich z.B. ein "S" als Suchstring ein, sollen mir alle Namen mit dem Anfangsbuchstaben S angezeigt werden.

Dies bewerkstellige ich so: "^S" -> zumindest funktioniert das für mich. Würde ich nur "S" nehmen, würde er mir alle Namen raussuchen, die irgendwo ein S im Namen haben. Das funktioniert für mich nicht, womit ich jetzt auf mein eigentliches Problem überleiten will.

Es könnte ja sein, es gibt den Nachnamen "van der Sarr". Der String beginnt mit V, er würde also bei der Suche nicht angezeigt werden, obwohl es intuitiv richtiger wäre, den String beim Suchen nach S trotzdem anzuzeigen!

Wie könnte man es hinbekommen, dass man alle Teilmengen eines Strings nach einem bestimmten Buchstaben durchsuchen kann, wobei es naürlich so sein muss, dass wenn ich S eingebe auch nur der Startbuchstabe (bei "Sarr" z.B.) beachtet wird! würde ich A eingeben, dürfte der Name nicht angezeigt werden, was in meinem oberen Beispiel aber der Fall wäre!

Ich muss dazu sagen, dass ich an dieser Stelle nicht die Möglichkeit habe, den String z.B. mit PHP zu teilen. Ich arbeite mit Flex, da ist das etwas schwieriger.

Gibt es da vielleicht eine Möglichkei? Ich würde mich sehr über eine Antwort freuen.

LG


Firefall
29.03.2009, 19:41
(^S| S)Sowas? Wenn S am Anfang des Namens steht oder nach einem Leerschlag... Je nahc Sprache gibt'sdazu auch spezielle Platzhalter (Für Wortgrenzen usw). Aber das müsste es tun...

pabera
29.03.2009, 20:49
Sehr schön, das ist genau das wonach ich gesucht habe und im Endeffekt ist das ja gar nicht schwer theoretisch. Ich muss mich doch häufiger damit beschäftigen.
Danke für deine Antwort.

Viele Grüße

Manni the Dark
31.03.2009, 14:10
In vielen Sprachen gibt es dafür Wort-Boundaries. Du kannst also sowas wie "\bS" benutzen. \b findet den Übergang zwischen Wortzeichen (\w) und Nicht-Wortzeichen (\W) (inklusive des Anfangs oder Ende eine Strings). Mehr Infos gibt es hier (http://www.regular-expressions.info/wordboundaries.html). Keine Ahnung ob Flex sowas unterstützt...

Damit könntest du auch sowas wie "Müller-Sarr" finden, falls du das willst.

pabera
31.03.2009, 23:01
stimmt, an doppelnamen hatte ich noch gar nicht gedacht.. das wäre natürlich wichtig. ich werde mich da gleich mal ransetzen.. vielen dank für den tipp..