• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

groß und kleinschreibung nicht beachten?

Status
Für weitere Antworten geschlossen.

wolf360

Neues Mitglied
Hey, wie stell ich des an, das die groß und kleinschreibung nicht beachtet wird?

hab auch schon gegoogelt aber nichts passende gefunden?!

könnt ihr mir helfen?

gruß wolf360
 
Zuletzt bearbeitet:
danke für die hilfe!!

okey etz mal ne andere frage:

PHP:
if (!preg_match("/^[a-z0-9]*$/i", $test))
    {
     echo "Fehler";
   }
   else{
     echo "Passt";
   }

dieser code bewirkt ja das keine sonderzeichen akzeptiert werden.... ich weiß jetzt zwar wie ich damit umgehe aber nicht was die ganzen zeichen bedeuten könnt ihr mir das erklären?

also das kleine i bewirkt das groß und kleinschreibung ignoriert wird aber was bewirkt das ^, *, und das $ ???

danke schon mal für die hilfe!
 
Zuletzt bearbeitet von einem Moderator:
danke für die hilfe!!

okey etz mal ne andere frage:

PHP:
if (!preg_match("/^[a-z0-9]*$/i", $test))
    {
     echo "Fehler";
   }
   else{
     echo "Passt";
   }
dieser code bewirkt ja das keine sonderzeichen akzeptiert werden.... ich weiß jetzt zwar wie ich damit umgehe aber nicht was die ganzen zeichen bedeuten könnt ihr mir das erklären?

also das kleine i bewirkt das groß und kleinschreibung ignoriert wird aber was bewirkt das ^, *, und das $ ???

danke schon mal für die hilfe!

Warte mal bis Frank online ist, der wird bestimmt was dazu sagen können. Mit Regulären Ausdrücken kennt der sich ganz gut aus :)
 
also da boehseronkel das ja schon angekündigt hat, kann ich mich nichtmal davor drücken^^

/^[a-z0-9]*$/i

komm wir zuerst zu den beiden / Diese Zeichen bedeuten nichts weiter als "hier fängt das Suchmuster" an, und "hier hört das Suchmuster auf". Dazu kannst du auch jedes andere beliebige Zeichen nehmen, es sollte nur nicht im Ausdruck (das ist der Teil dazwischen) vorkommen.

Dann haben wir das ^. Das bedeutet "Stringanfang". Das Suchmuster fängt als direkt am Anfang der Zeichenkette an.

Jetztfolgt eine Klammer [] das bedeutet, alle Zeichen die in dieser Klammer stehen sind erlaubt. Bei dir ist das a-z0-9 also alle Zeichen von a bis z (das Alphabet halt) und 0 bis 9 (0,1,2,3,4,5,6,7,8,9).

Jetzt folgt ein *. Dieser Bedeutet, dass das Vorherige (also a-z und 0-9) null bis beliebig oft vorkommen dürfen.

Das $ zeichen bedeutet nun "Hier muss der String aufhöhren"

Das i ganz am Ende bedeutet, dass bei der Sucher die Groß und Kleinschreibung nicht beachtet wird

so das wars x)
 
anstadt * am ende von [a-z0-9] kann man auch schreiben

[a-z0-9]{...}

um die anzahl der zeichen zu begrenzen oder eine maximal anzahl einzugeben.

Beispiele:

[a-z0-9]{6,} /*nur 5 oder mehr zeichen*/
[a-z0-9]{6,12} /*zwischen 6 und 12 zeichen*/
[a-z0-9]{0,12} /*maximal 12 zeichen*/

=============================

Hinter deinen regulären ausdruck hast du jetzt zum beispiel ein i stehen um anzugeben das du groß und kleinschreibung ignorieren willst.

die 3 wichtigsten zeuchen du du hinter einen regulären ausdruck schreiben kannst sind meiner meinung nach i, U und s die bedeuten volgendes

U = so wenig wie möglich
s = so viel wie möglich...

verstehst du wrscheinlich an diesem beispiel am besten

regex: /\[url\](.*)\[\/url\]/

Hallo du da hier meine homepage [noparse]www.google.de[/noparse] und hier noch die homepage von einem freund [noparse]YouTube - Broadcast Yourself.[/noparse] wir sehen uns...

wenn du an den oben genannten regex ein U dran hängst wird nur der rote bereich erkannt also hast du 2 ergebnisse.

wenn du aber ein s an den regex dran hängst wird der rote und der grüne bereich erkannt also nur ein ergebniss ;)

hoffe das hat n bissel geholfen :P

MFG Miah ^^

//Edit: auf den zweiten link trifft der regex hier natürlich nicht aber auch nur weil das forum den link leider ändert ;) ^^
 
anstadt * am ende von [a-z0-9] kann man auch schreiben
[a-z0-9]{...}
Das würde für seinen Zweck (alle Sonderzeichen nicht erlauben) das falsche sein
s = so viel wie möglich...
sry aber das stimmt nicht...
i (PCRE_CASELESS)
Wenn dieser Modifikator gesetzt ist, passen Buchstaben im Suchmuster sowohl auf groß- als auch auf kleingeschriebene Buchstaben.
m (PCRE_MULTILINE)

Standardmäßig behandelt PCRE eine zu durchsuchende Zeichenkette wie eine einzige Zeile von Zeichen (auch wenn sie tatsächlich mehrere Zeilenumbrüche enthält). Das Metazeichen für einen Zeilenanfang (^) passt nur auf den Anfang der Zeichenkette, das Metazeichen für ein Zeilenende ($) nur auf das Ende der Zeichenkette (falls der Modifikator D nicht gesetzt ist). Das ist genauso wie bei Perl.

Wenn dieser Modifikator gesetzt ist, passen die Zeilenanfang- und Zeilenende-Konstrukte in der Zeichenkette sowohl direkt nach, bzw. vor einem Zeilenumbruch als auch auf deren Anfang und Ende. Das entspricht dem Perl-Modifikator /m. Falls die Zeichenkette keine Sequenz "\n" enthält, oder im Suchmuster kein ^ oder $ vorkommt, hat dieser Modifikator keine Wirkung.
s (PCRE_DOTALL)
Wenn dieser Modifikator gesetzt ist, passt das Metazeichen Punkt im Suchmuster auf alle Zeichen inklusive Zeilenumbrüche. Ohne diesen Modifikator sind Zeilenumbrüche ausgeschlossen. Dieser Modifikator entspricht dem Perl-Modifikator /s. Unabhängig davon, ob dieser Modifikator gesetzt ist, passt eine verneinende Zeichenklasse wie z.B. [^a] immer auf einen Zeilenumbruch.
x (PCRE_EXTENDED)
Wenn dieser Modifikator gesetzt ist, werden Leerräume im Suchmuster ignoriert, sofern sie nicht maskiert sind oder sich innerhalb einer Zeichenklasse befinden. Außerdem werden Zeichen, die außerhalb einer Zeichenklasse zwischen nicht maskierten # stehen, einschließlich dem nächsten Zeilenumbruch ignoriert. Das entspricht dem Perl-Modifikator /x und bietet die Möglichkeit, Kommentare in komplizierte Suchmuster einzufügen. Beachten Sie aber, dass dies nur für Datenzeichen gilt. Leerräume dürfen niemals innerhalb einer Folge spezieller Zeichen auftreten, zum Beispiel in der Folge (?(, die einen bedingten Teilausdruck einleitet.
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 Anführungszeichen, doppelte Anführungszeichen, Backslashes und NULL-Zeichen 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.

Anmerkung: Dieser Modifikator steht in PHP 3 nicht zur Verfügung.

A (PCRE_ANCHORED)
Wenn dieser Modifikator gesetzt ist, wird das Suchmuster "verankert", das bedeutet, dass es gezwungen wird, nur auf den Anfang der durchsuchten Zeichenkette zu passen. Diese Wirkung kann auch durch geeignete Konstrukte im Suchmuster selbst erreicht werden, was in Perl die einzige Möglichkeit ist, sie zu realisieren.
D (PCRE_DOLLAR_ENDONLY)
Wenn dieser Modifikator gesetzt ist, passt ein Dollar-Metazeichen im Suchmuster nur auf das Ende der durchsuchten Zeichenkette. Ohne diesen Modifikator passt ein Dollarzeichen auch direkt vor dem letzten Zeichen, falls es ein Zeilenumbruch ist (aber nicht vor anderen Zeilenumbrüchen). Wenn der Modifikator m gesetzt ist, wird dieser Modifikator ignoriert. Für diesen Modifikator gibt es in Perl keine Entsprechung.
S
Wenn ein Suchmuster mehrmals verwendet werden soll, lohnt es sich, mehr Zeit für dessen Analyse aufzubringen um die Suche zu optimieren. Wenn dieser Modifikator gesetzt ist, wird diese zusätzliche Analyse durchgeführt. Gegenwärtig ist die Untersuchung eines Suchmusters nur für nicht verankerte Suchmuster brauchbar, die am Anfang kein einzelnes fixiertes Zeichen haben.
U (PCRE_UNGREEDY)
Dieser Modifikator kehrt die Gier von Quantifikatoren um, sodass sie standardmäßig nicht gierig sind, aber gierig werden, wenn ihnen ein "?" folgt. Das ist nicht mit Perl kompatibel. Es kann auch innerhalb des Suchmusters mit dem Modifikator (?U) oder durch ein Fragezeichen hinter dem Quantifikator (z.B. .*?) gesetzt werden.
X (PCRE_EXTRA)
Dieser Modifikator schaltet mit Perl nicht kompatible zusätzliche PCRE-Funktionalität an. Ein Backslash vor einem Buchstaben, der keine spezielle Bedeutung hat, verursacht eine Fehlermeldung und reserviert diese Kombinationen somit für künftige Erweiterungen. Standardmäßig wird ein Backslash vor einem Buchstaben, der keine spezielle Bedeutung hat, wie in Perl als Buchstabensymbol behandelt. Gegenwärtig werden von diesem Modifikator keine weiteren Eigenschaften kontrolliert.
u (PCRE_UTF8)
Dieser Modifikator schaltet mit Perl nicht kompatible zusätzliche PCRE-Funktionalität an. Suchmuster werden als UTF-8 behandelt. Dieser Modifikator steht unter Unix seit PHP 4.1.0 und unter Win32 seit PHP 4.2.3 zur Verfügung. Ob es sich im Suchmuster um gültiges UTF-8 handelt, wird seit PHP 4.3.5 überprüft.
 
ooooooooooooooooookey.... xD... die erklärung von Frank hab ich etz kappiert!! danke für die genaue erklärung!!!

okey das beispiel von Slibbo hab ich verstandn...

aber was ist da:

regex: /\[url\](.*)\[\/url\]/

okey die beiden / makieren den suchbereich aber was bringt da schon wieder das (.*) \ ? und das [\/url\] nur noch zeichenwirrwar:shock: :???:

gruß wolf360 s
 
mit den runden klammern ( und ) legst du fest, welche text bestandteile du später weiter verwenden möchtest.

beispiel
PHP:
<?php

$text = "Meine homepage [url=http://www.google.de]Google[/url]. Besuch mich mal.";

$text = preg_replace("/\[url\](.*?)\[\/url\]/i", "<a href=\"$1\">$1</a>", $text);

echo $text;

?>

dort greifst du mit $1 auf den in (.*?) gespeicherten text zurück.
der punkt . steht in dem fall für ein beliebiges zeichen der stern * gibt an das alle zeichen gespeichert werden sollen und das fragezeichen ? unterdrückt das der reguläre ausdruck gierig ist. also das volgendes beispiel

[noparse]GoogleGoogle[/noparse]
nicht in volgendes übersetzt
[noparse]<a href="www.google.de[/url]www.google.de">www.google.dewww.google.de</a>[/noparse] ======... ja auch in ICQ melden ;) 310031830 MFG Miah
 
danke für die hilfe!!! find eure erklärungen suppa!!!!!

danke!!!

gruß wolf360

PS: werd mich meldn sobald ich fragn hab!!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben