php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.10.2005, 17:32  
Gast
 
Beiträge: n/a
Standard Wortgrenzen in Regulären Ausdrücken

Hallo Forengemeinde!

Habe hier eine kleine Auseinandersetzung mit der Wortgrenze. (\b) :wink:

Bei meinem lokalem IIS auf Windows Server 2003 + PHP 4.3.8 wird die Wortgrenze gefunden und bei meinem online Server Apache 1.3.33 auf Unix + PHP 4.3.11 nicht?! Kann das sein?

Hier ein link zur Verdeutlichung des Regulärem Ausdrucks:
http://www.cix88.de/cix_php/demo/cix...20051023165741
(hier wird die Wortgrenze ebenfalls nicht gefunden)
hier sollte das Wort "RS" im Wort "fürs" nicht gefunden werden.

Oder verstehe ich das \b für Wortgrenzen falsch?

Wie gesagt auf meinem IIS funktionier das alles hervorragend mit dem gleichem Ausdruck:
Code:
#\b(RS)\b#iSU
Da ich aber das Nichterkennen der Klein-/Großschreibung nicht unbedingt abschalten möchte, frage ich euch wie ich das Problem am besten lösen könnte.

Danke,
m@x
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.10.2005, 20:41  
Gast
 
Beiträge: n/a
Standard Re: Wortgrenzen in Regulären Ausdrücken

Zitat:
Zitat von m@x
Oder verstehe ich das \b für Wortgrenzen falsch?
nein, nur der von preg verwendete zeichensatz scheint bei deinem online server ein anderer zu sein (müsste man irgendwo auf ISO 8859-1[de] - oder so ähnlich - ändern)
ansonsten musst du das ganze eben so schreiben, dass auch umlaute als wortzeichen erkannt werden, z.b. so:

PHP-Code:
<?php
$string 
"RS ist ein Test der Abkürzung RS fürs Lexikon.";

$pattern '#(^|[^\wäöüß]+)(RS)($|[^\wäöüß]+)#Ui';
$replacement '\1<wort>\2</wort>\3';
$string preg_replace($pattern$replacement$string);
?>
P.S.: geht wahrscheinlich mal wieder schöner
 
Alt 23.10.2005, 22:33  
Gast
 
Beiträge: n/a
Standard

Na supi!

Besten Dank für den Denkanstoß!
Kann ich mit
PHP-Code:
<?php

$loc_de 
setlocale (LC_ALL'de_DE@euro''de_DE''de''ge');

?>
ganz einfach umstellen.

Auch Dein Regulärer Ausdruck funktioniert hervorragend, danke!

Grüße
m@x


PS: Der Ausdruck muss ja keinen Schönheitswettbewerb gewinnen. :wink:
 
Alt 23.10.2005, 22:46  
Gast
 
Beiträge: n/a
Standard

mein ISO-kram gehörte dann wohl eher zu perl ...
Code:
setlocale(LC_CTYPE,"de_DE.ISO-8859-1");
 
Alt 23.10.2005, 23:03  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Ob das locale de_DE.ISO-8859-1 oder sonstwas heisst, hängt davon ab, wer das System eingerichtet hat. Und dann gilts für Perl und PHP gleichermassen.
__________________
mod = master of disaster
Waq ist offline  
 


Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
reguläre ausdrücke wortgrenze, wortgrenzen, wortgrenze, php reguläre ausdrücke wortgrenze, setlocale(lc_ctype,\de_de.iso-8859-1\);, preg wortgrenze, regulärer ausdruck wortgrenze, perl wortgrenze, preg_replace wortgrenze, php wortgrenzen, php preg_replace wortgrenze, php wortgrenze, perl wortgrenzen, php reguläre ausdrücke, \\b wortgrenze, php regulärer ausdruck wortgrenze, setlocale(lc_ctype,\de_de.iso-8859-1\), wortgrenze preg_replace, wortgrenze php, php \\b wortgrenze

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.