phpbar.de logo

Mailinglisten-Archive

[php] Treffer mit RegEx erweitern

[php] Treffer mit RegEx erweitern

Yannik Hampe yannik at cipher-code.de
Son Dez 16 12:32:49 CET 2007



Reinhold Jordan wrote:
> Hallo,
> 
>>> Dies hier schon http://www.uris.de/test/regex12.php
>> leider nur unter Windoof,
>> unter Unix/Linux werden die Umlaute ausgeklammert,
>> obwohl sie im RegEx stehen. Sehr eigenartig ... :-(
> 
> hängt immer vom verwendeten Zeichensatz ab. Das solltest
> Du aber wissen

Nix da. Haupstache der Zeichensatz ist immer gleich. Ich hoffe nicht, 
dass der array $IN in dem script in einem anderen Zeichensatz 
geschrieben ist, als das $pattern :-D.
Selbst bei multibyte Zeichensätzen ist der Zeichensatz egal, da der 
String am Ende nur per Musterreferenz kopiert wird.
> 
> Wenn ich das probiere mit einem unter Linux erzeugten Script geht
> das auch unter Linux - und vermutlich unter Windows nicht...

Ich hoffe du schreibst deine Skripte nicht alle 2x...

Ist euch eigentlich mal aufgefallen, dass das Umlautproblem bei den 
Haustüren (erstes Ergebnis) nicht auftritt?
Übrigens: Modifiziere ich die entsprechende Zeile so:
'Das sdfÜÖÄßhausdach ist ein künstliches Testobjekt.',
Funktionier der regex auch.

Das interessante ist, dass PCRE tatsächlich bei \b nur ascii-chars 
unterstüzt:
http://www.regular-expressions.info/refflavors.html
(Wusste ich bis gerade aber auch nicht).

Eine bessere Lösung wäre also:
$pattern='/(?<=[^a-z0-9üöäÜÖÄß]|\A)[a-z0-9üöäÜÖÄß]*'.$such.'[a-z0-9üöäÜÖÄß]*(?=[^a-z0-9üöäÜÖÄß]|\Z)/i';

Tut mir Leid, dass ich euch mit den Wortgrenzen etwas in die Irre 
geführt habe :-(.
> 
> Gruß, Reinhold

Yannik

php::bar PHP Wiki   -   Listenarchive