phpbar.de logo

Mailinglisten-Archive

[php] Lösungsansatz Wortsuche

[php] Lösungsansatz Wortsuche

Jens Giessmann jg at handcode.de
Mit Jan 3 21:42:27 CET 2007


Hi,

On Wed, Jan 03, 2007 at 07:52:21PM +0100, Niels Jäckel wrote:
> 
> > Ok , dann brauchst du RegEx. Versuch es mal so in der Art:

[..]

> das wird so sicher nicht funktionieren:

Es funktionert auf alle genannten Beispiele und sollte auch nur ein
Ansatz zum weitermachen sein...

> 1. '([^' . $del_end . ']*' funktioniert nur, wenn der Delimiter aus 
> genau einem Zeichen besteht. 

Nein. Das "unsaubere" ist, dass es nicht genau der Delimiter
sein muss, sondern keines der Zeichen sein darf, aber siehe oben
sollte als Ansatz dienen.

> Wenn du allerdings o.g. Delimiter da in die 
> Zeichenklasse setzt, heißt das, dass keins der Zeichen des Delimiters 
> vorkommen darf. Die RegEx würde also schon bei z.b. < zuschlagen.

Das stimmt, aber siehe oben...

> 2. Die eingesetzen Teile müstten alle mit preg_quote() vorbereitet 
> werden um Steuerzeichen zu escapen.

Wenn die eingesetzten Teile aus Usereingaben oder externen Quellen
kommen ja, wenn ich sie selber schreibe, nunja.

> 3. Selbst wenn das Pattern von 1. so funktionieren würde, hättest du 
> nichts in der Hand, wenn Delimiters verschachtelt werden. Aus Alex' 
> letztem Beispiel entnehme ich, dass dies durchaus der Fall sein kann.

Das ist (mir) klar, davon hat aber auch keiner was gesagt.
 
> Allerdings ist ein Algorithmus, der das tut, was ich glaube verstanden 
> zu haben, nicht trivial. Ein wichtiges Kriterium ist z.B. ob man sich 
> immer auf Wohlgeformtheit verlassen kann, d.h. nach jedem <&> kommt auch 
> ein <%>.

Da hast du recht, aber davon war auch nicht die Rede. Alex hatte als
Aufgabe formuliert lediglich zu pruefen ob sein Suchwort innerhalb
seiner Delimiter vorkommt oder nicht. 


Gruss Jens

php::bar PHP Wiki   -   Listenarchive