halimeh Geschrieben 1. Januar 2005 Geschrieben 1. Januar 2005 Moinsen ! Ich möchte einfach einen String dahingehend überprüfen, ob er aus bis zu eintausend beliebigen Kleinbuchstaben von a bis z ohne umlaute wie z.B. ä besteht. Dazu habe ich folgenden PHP-Quellcode erstellt: <?php $teststring="Irgendein freakiger Testtext"; $muster=([a-z]){1,1000}; $ergebnis=ereg($muster,$teststring); if ($ergebnis===true) echo("der teststring entspricht dem muster"); else echo("der teststring entspricht nicht dem muster"); ?> Irgendwie haut das aber nicht hin.Ich vermute einen SyntaxFehler in der Zeile: $muster=([a-z]){1,1000}; Da ich von PHP aber noch nicht allzu viel Ahnung habe, könnten auch gröbere Denkfehler drin stecken. Kann mir da jemand weiterhelfen? Thx and greetz.
DFBL-Benjamin Geschrieben 1. Januar 2005 Geschrieben 1. Januar 2005 <?php $teststring="Irgendein freakiger Testtext"; $muster=([a-z]){1,1000}; $ergebnis=ereg($muster,$teststring); [B]if ($ergebnis===true)[/B] echo("der teststring entspricht dem muster"); else echo("der teststring entspricht nicht dem muster"); ?> in der Fettmarkierten Zeile hast du was falsch einen Vergleich wird nur mit == Gleichheitszeichen erstellt. Zu dem anderen kann ich leider nichts sagen, da ich damit noch nie was zu tun hatte!
kills Geschrieben 1. Januar 2005 Geschrieben 1. Januar 2005 in der Fettmarkierten Zeile hast du was falsch einen Vergleich wird nur mit == Gleichheitszeichen erstellt. Zu dem anderen kann ich leider nichts sagen, da ich damit noch nie was zu tun hatte! Das ist nicht korrekt. In diesem Fall kann ein Vergleich mit "===" durchgeführt werden! zum Topic: <?php $teststring="Irgendein freakiger Testtext"; $muster="([a-z]){1,1000}"; // hier haben die "" gefehlt $ergebnis=ereg($muster,$teststring); if ($ergebnis===true) echo("der teststring entspricht dem muster"); else echo("der teststring entspricht nicht dem muster"); ?> [/PHP] ob bei dieser RegEx auch die umlaute ausgeschlossen sind kann ich nicht direkt sagen
halimeh Geschrieben 1. Januar 2005 Autor Geschrieben 1. Januar 2005 Moinsen ! Bezüglich der "===" : In diesem Fall können tatsächlich drei Gleichheitszeichen verwendet werden.Es ist der sog. Identitätsoperator.Nichtsdestotrotz habe ich es mal mit nur zwei Gleichheitszeichen probiert; hat aber nichts gebracht. Aufgrund von kills Empfehlung habe ich die dritte Zeile meines Quellcodes korrigiert: $muster="([a-z]){1,1000}"; Das hat mich zwar etwas weitergebracht aber das Programm läuft dennoch nicht ganz rund. Es erscheint jetzt immer das Ergebnis: "der teststring entspricht nicht dem muster" auch wenn ich den Testtext, also $teststring dem Muster ($muster) angepaßt habe. Wenn das Programm ausgeführt wird, kommt zusätzlich noch folgende Fehlermeldung: Warning: ereg() [function.ereg]: REG_BADBR in C:\froshky\WebServer\apachefriends\xampp\htdocs\test01.php on line 4 Wenn es tatsächlich an "line 4" liegt, wäre ein Fehler in der Zeile: $ergebnis=ereg($muster,$teststring); Kann nochmal jemand weiterhelfen? Thx and greetz.
FMG Geschrieben 2. Januar 2005 Geschrieben 2. Januar 2005 Bei ereg() ist nicht der zweite Parameter die Anzahl, sondern der dritte. ereg() erwartet folgende Parameter: 1. Suchmuster (String) 2. Zeichenkette (String) 3. Anzahl der Suchmuster (Array) [optionaler Parameter] Du hast aber nur 2... Anstatt ereg() sollte man laut http://www.php-faq.de/q/q-regexp-ereg.html auch eher preg_match() nehmen.
halimeh Geschrieben 2. Januar 2005 Autor Geschrieben 2. Januar 2005 Moinsen ! Das mit der preg_match()-Funktion habe ich mal ausprobiert und scheint auch zu klappen. Aber durch meine CodeZeile: $muster="([a-z]){1,1000}"; wird auch eine Übereinstimmung gefunden, wenn Großbuchstaben im Testtext vorhanden sind, daher habe ich mal die Bedingung umgedreht: $muster="([A-ZäÄöÖüÜ]){1,1000}"; und somit alle nichterwünschten Zeichen ausgeschlossen. Hier nun mein kompletter Quellcode: <?php $teststring="irgendein freakiger Testtext"; $muster="([A-ZäÄöÖüÜ]){1,1000}"; if (preg_match("/$muster/","$teststring")) { echo("der teststring entspricht nicht dem muster"); } else { echo("der teststring entspricht dem muster"); } ?> Ist jetzt zwar noch nicht hundertprozentig das, was ich suche, aber schon mal nahe dran.Ich werde mir demnächst dann nochmal die preg_match()-Funktion genauer ansehen. Greetz.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden