Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) normalisieren, normalisierung, regexp, reguläre ausdrücke (edit)
 
Reply to this topicStart new topicStart Poll
> Beispiele zu Regulären Ausdrücken, Suche verständliche Quellen
Shopping
Geschrieben am: So 22.01.2006, 13:18
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Marketing (Mod)
Beiträge: 1843
Mitglied seit: 11.12.2003


Ich versuche zur Zeit die Normalisierung zu verstehen, finde jedoch keine geeigneten Quellen. Hat mir vielleicht jemand einen Tipp, wo dies "idotengerecht" anhand von Beispielen erklärt wird.

Zur Verdeutlichung: ich versuche zu verstehen, was genau in folgendem Code steht:
$text = preg_replace('/[^A-Za-z0-9'.$allow.'\s]/e','',$text);

Gruss, Ivo


--------------------
Bei Pligg, da verdient jeder mit! - Neuanmeldungen jetzt wieder moeglich!

Das Schweizer Shopping Portal seit 1999

Gratis - alles, was es im Internet gratis gibt
Top
PMEmail PosterUsers Website
Top
 
 
Hardcore4Life
#2 Geschrieben am: So 22.01.2006, 15:27 (+02:09)
Report PostQuote Post

AyomRank 1
**

Gruppe: Member (inaktiv)
Beiträge: 2
Mitglied seit: 19.01.2006


Hallo Ivo,

also entweder liegt es daran das ich wenig geschlafen habe oder dein Beitrag ist einfach "falsch" biggrin.gif
Normalisierung hat nichts mit Code zu tun, sondern sind Regeln wie man eine Datenbank designen sollte und dabei redundate Daten vermeidet.

Das was du an Code geschrieben hast sind "Reguläre Ausdrücke".
Allerdings bin ich auf dem Gebiet auch kein Experte, aber wenn du mal bei der Suchmaschine deines Vertrauens nach Regulären Ausdrücken suchst findest du schon eine Erläuterung und wirs auch recht schnell und einfach den Code Schnipsel verstehen und übersetzen können!

Schöne Grüße und noch ein schönes Wochenende
Top
PMEmail Poster
Top
 
Sascha Ahlers
#3 Geschrieben am: So 22.01.2006, 15:43 (+00:15)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1708
Mitglied seit: 27.12.2004


Hallo,


für Reguläre Ausdrücke ist diese Seiten recht gut:
PHP.net: Pattern Syntax
PHP.net: Suchmuster-Modifikatoren
Wikipedia: Regulärer Ausdruck


Wenn das alles nicht hilft, kann ich nur noch das Buch von O'Reilly mit dem Titel "Reguläre Ausdrücke" empfehlen.
O'Reilly: Reguläre Ausdrücke, 2. Auflage



MfG Sascha Ahlers


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
René Weber
rwx-support
#4 Geschrieben am: So 22.01.2006, 15:48 (+00:05)
Report PostQuote Post

AyomRank 7
Group Icon

Gruppe: Moderatoren
Beiträge: 1173
Mitglied seit: 3.09.2004


Ciao Ivo,

Also wenn du Normalisierung meinst, dann musst du hier reinschauen:

IEC / CEI
ISO
ITU / UIT

Dieses sind die 3 offiziellen weltweiten Normen Organisationen.

Wenn du aber deinen Zeichensalat verstehen willst, dann gibt's hier eine gute Seite:

UNIX Reglar Expressions

Und wenn du auf Linux fährst, dann kannst du einfach "man vi" eingeben.

Have a sunny Sunday
René


--------------------
Alles ist relativ.
Visayan Silent Gardens Abenteuer Philippinen
La Fouly Ab in die Berge SOLD!!!
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Shopping
#5 Geschrieben am: So 22.01.2006, 16:00 (+00:11)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Marketing (Mod)
Beiträge: 1843
Mitglied seit: 11.12.2003


Zuerstmal: Schande ueber mein Haupt. Ich habe da anscheinend wirklich was verwechselt bzw. nicht ganz begriffen und somit erstaunt es auch kaum, dass ich nichts gefunden habe. In die Irre geleitet wurde ich u.a. von diesem Textauszug, der in Selfhtml zu finden ist:

QUOTE
Das ganze kann man recht einfach 'normalisieren': $txt = preg_replace('/\015\012|\012|\015/',"\n",$txt);


Euch allen, lieben Dank, ich werde die Links mal studieren und gegebenenfalls nochmals mit ganz konkreten Fragen zurueckkommen.

Gruss, Ivo



--------------------
Bei Pligg, da verdient jeder mit! - Neuanmeldungen jetzt wieder moeglich!

Das Schweizer Shopping Portal seit 1999

Gratis - alles, was es im Internet gratis gibt
Top
PMEmail PosterUsers Website
Top
 
Ansgar Berhorn
TOPdesk Deutschland
#6 Geschrieben am: So 22.01.2006, 16:24 (+00:24)
Report PostQuote Post

AyomRank 6
Group Icon

Gruppe: Experten Entwicklung (Mod)
Beiträge: 857
Mitglied seit: 8.10.2004


QUOTE (Ivo Gasser @ So 22.1.2006, 16:00)
Zuerstmal: Schande ueber mein Haupt. Ich habe da anscheinend wirklich was verwechselt bzw. nicht ganz begriffen und somit erstaunt es auch kaum, dass ich nichts gefunden habe. In die Irre geleitet wurde ich u.a. von diesem Textauszug, der in Selfhtml zu finden ist:

QUOTE
Das ganze kann man recht einfach 'normalisieren': $txt = preg_replace('/\015\012|\012|\015/',"\n",$txt);

Vermutlich meint der Autor bei Selfhtml das entfernen von führenden und anhängenden Leerzeichen und das Entfernen von nicht erlaubten Zeichen.

Also z.B.: " W%ort& " wird "Wort".


--------------------
Top
PMUsers Website
Top
 
Alain_Aubert
#7 Geschrieben am: So 22.01.2006, 16:49 (+00:25)
Report PostQuote Post

Ayom Slave
Group Icon

Gruppe: Admin
Beiträge: 4847
Mitglied seit: 25.09.2003


QUOTE
Zur Verdeutlichung: ich versuche zu verstehen, was genau in folgendem Code steht:
$text = preg_replace('/[^A-Za-z0-9'.$allow.'\s]/e','',$text);

Da steht, dass ich den $text nehme und alles '/[^A-Za-z0-9'.$allow.'\s]/e' durch '' (also nichts) ersetzte.
Dabei bedeutet [] dass es um alle (einzelnen) Zeichen geht. ^ steht für die Negation. D.h. [^A-Z] heisst alle nicht-grossBuchstaben. [^A-Za-z0-9] heisst also alle nicht-Buchstaben und nicht-Zahlen. Sei $allow mal ein "-". Dann heisst /[^A-Za-z0-9'.$allow.'\s]/e also: alles was kein Zeichen (a-z gross und klein) und keine Zahl und kein "-", und keine Lehrzeichen (\s) ist, soll durch '' (nichts) ersetzt werden.
Was der modifier /e bedeutet ist mir nicht klar.
Top
PMEmail PosterUsers Website
Top
 
Sascha Ahlers
#8 Geschrieben am: So 22.01.2006, 17:03 (+00:13)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1708
Mitglied seit: 27.12.2004


QUOTE (Alain Aubert @ So 22.1.2006, 16:49)
[...] Was der modifier /e bedeutet ist mir nicht klar.

Das steht auch auf der PHP Seite erklärt:

QUOTE
e
Wenn dieser Modifikator gesetzt ist, macht preg_replace() in der Ersetzungszeichenkette eine normale Ersetzung von Rückrefenzen, wertet sie als PHP-Code aus und verwendet das Ergebnis um damit die gesuchte Zeichenkette zu ersetzen. Einfache und doppelte Anführungszeichen werden in den ersetzten Rückreferenzen mit einem Backslash maskiert.

Dieser Modifikator wird nur von preg_replace() verwendet; von anderen PCRE-Funktionen wird er ignoriert.


Quelle: http://de.php.net/manual/de/reference.pcre...n.modifiers.php

Also so ähnlich wie in Perl. ;-)



MfG Sascha Ahlers


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Shopping
#9 Geschrieben am: So 22.01.2006, 17:29 (+00:26)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Marketing (Mod)
Beiträge: 1843
Mitglied seit: 11.12.2003


@Alain
Danke, genau das wollte ich wissen. Jetzt habe ich mindestens mal ein klitzekleines Basisverstaendnis auf dem sich hoffentlich aufbauen laesst.

@Sascha
Das klingt ziemlich kompliziert. Da muss ich wohl noch ein wenig hirnen bis ich das wirklich verstanden habe. Dies liesse sich doch bestimmt auch in einfachere Worte packen.

Noch eine kleine Frage an euch Genies smile.gif . Hierzu nehme ich nochmals Bezug auf mein Beispiel:
QUOTE
$text = preg_replace('/[^A-Za-z0-9'.$allow.'\s]/e','',$text);


Wie muesste dieses Beispiel aussehen, wenn ich mit Alain's Worten: alles was kein Zeichen (a-z gross und klein) und kein Zeichen (ü ä ö gross und klein) und keine Zahl und kein "-", und keine Lehrzeichen (\s) ist, soll durch '' (nichts) ersetzt werden.


--------------------
Bei Pligg, da verdient jeder mit! - Neuanmeldungen jetzt wieder moeglich!

Das Schweizer Shopping Portal seit 1999

Gratis - alles, was es im Internet gratis gibt
Top
PMEmail PosterUsers Website
Top
 
Alain_Aubert
#10 Geschrieben am: So 22.01.2006, 17:46 (+00:16)
Report PostQuote Post

Ayom Slave
Group Icon

Gruppe: Admin
Beiträge: 4847
Mitglied seit: 25.09.2003


A Propos, Normalisieren kann man alles, und dein Stichwort sind reguläre ausdrücke, regexp. War recht verwirrend wink.gif

Manipulier das $allow. Du hast A-Z a-z 0-0 \s und Du willst also noch $allow = "öüäÖÜÄ-" Alternativ ignoriert \i grossKlein.

Bitte aber beachten, dass é und dergleichen nicht als Buchstaben gelten. Also auch durch nichts ersetzt werden.

@Sascha, danke.
Top
PMEmail PosterUsers Website
Top
 
Sascha Ahlers
#11 Geschrieben am: So 22.01.2006, 18:42 (+00:56)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1708
Mitglied seit: 27.12.2004


QUOTE (Ivo Gasser @ So 22.1.2006, 17:29)
@Sascha
Das klingt ziemlich kompliziert. Da muss ich wohl noch ein wenig hirnen bis ich das wirklich verstanden habe. Dies liesse sich doch bestimmt auch in einfachere Worte packen.
[...]

Vielleicht hilft dieses Beispiel etwas weiter:

CODE
<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
            "'\\1'.strtoupper('\\2').'\\3'",
            $html_body);
?>


Hierbei wird im Grunde nur die Ersetzung durch den PHP-Parser geschickt, so dass die Funktion strtoupper() benutzt werden kann, was ohne den Modifikator /e nicht möglich wäre. Wichtig hierbei ist darauf zu achten, dass die einzelnen Subpattern im Ersetzungsstring auch escaped werden (statt \1 wird hier \\1).
Dies ist im Grunde eigentlich Sinnlos für Deinen Pattern, da Du ja einfach gar nichts einfügst.
Bei der Variable $allow solltest Du vielleicht den Pattern noch etwas modifizieren, denn wenn in der Variable nicht escape Zeichen stehen, könnte es zu Problemen kommen, bzw. zu unerwünschten Ergebnissen. [1] Ob der Inhalt der Variable escaped werden sollte, hängt ganz davon ab, wie Du diesen Ausdruck verwenden möchtest.



MfG Sascha Ahlers

[1] string preg_quote ( string str [, string delimiter] )


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Shopping
#12 Geschrieben am: So 22.01.2006, 20:26 (+01:43)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Marketing (Mod)
Beiträge: 1843
Mitglied seit: 11.12.2003


Danke, Sascha! Ich weiss, Du meinst es nur gut mit mir, aber Du bist mir im Moment ein paar 100 Schritte voraus. Ich fuehle mich ungefaehr so wie als ich die ersten arabischen Worte gelernt habe. Da kommt wohl noch einiges auf mich zu bis ich die ganzen Details wirklich verstehe...

Ich arbeite mich jetzt mal behutsam in die Materie ein.

Ein Riesendank an Euch alle. Ihr habt mir echt geholfen!

Gruss, Ivo


--------------------
Bei Pligg, da verdient jeder mit! - Neuanmeldungen jetzt wieder moeglich!

Das Schweizer Shopping Portal seit 1999

Gratis - alles, was es im Internet gratis gibt
Top
PMEmail PosterUsers Website
Top
 
Irene
irene.ch
#13 Geschrieben am: Mo 23.01.2006, 09:55 (+13:28)
Report PostQuote Post

AyomRank 7
Group Icon

Gruppe: Experten Entwicklung (Mod)
Beiträge: 1114
Mitglied seit: 3.05.2004


Vielleicht nützt Dir dieses http://www.irene.ch/regulaere_ausdruecke.pdf PDF etwas. Ich habs mal irgendwo im Netz gefunden, als ich mich mit Regexen auseinandersetzen musste. Evtl. passen nicht ganz alle Ausdrücke auf PHP, da es einige verschiedene Regex-"Dialekte" gibt, aber es erklärt zumindest das Wichtigste kurz.

Griessli
Irene


--------------------
Top
PMUsers Website
Top
 
Münchow
#14 Geschrieben am: Mi 25.01.2006, 10:10 (+48:15)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (aktiv)
Beiträge: 14
Mitglied seit: 19.01.2006


Hi Ivo,

weiß nicht genau, ob das oben bei den Links schon irgendwo bei war. Aber ich kann noch den RegEx Coach empfehlen. Damit kann man reguläre Ausdrücke gegen einen Suchstring laufen lassen. Das kann man dabei auch z. B. Schritt für Schritt tun um so genau zu sehen, wann er was macht. Vielleicht hilft das ja auch ein wenig beim 'lernen'.

Grüsse,
Münchow
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/10272

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Werbeideen hier ein paar Beispiele woody 353 5 Di 6.11.2007, 08:11
Eure Beispiele für "schöne" Communities? Fabian99 998 11 Mo 24.09.2007, 19:19
Diskussion: E-Mailadressen überprüfen per Regul ... Ayom-Team 688 11 Do 17.05.2007, 14:42
suche Affiliates Homepages Beispiele patrick-l 842 5 Di 13.02.2007, 11:28




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]