#1 15. November 2011 einfache Regex-Abfrage Hi, ich möchte per regex einen String auf Kleinbuchstaben testen. Meine abfrage schaut wie folgt aus PHP: preg_match ( '/[^a-z]*/' , 'aaaa' , $matches ); print_r ( $machtes ); Leider gibt preg_match immer 1 zurück und zeigt mir dieses Ergebnis-Array an. HTML: Array ( [0] => ) Was mache ich falsch???? + Multi-Zitat Zitieren
#2 15. November 2011 AW: einfache Regex-Abfrage PHP: <? phppreg_match ( '/^[a-z]*$/' , 'aaaa' , $matches ); print_r ( $matches ); ?> Das ^ innerhalb von [] negiert den Ausdruck.. Sprich du erlaubst mit deinem Regex alles außer Kleinbuchstaben ;-) Und um ausschließlich kleine Buchstaben in dem ganzen String zuzulassen, musste ein ^ was in dem Fall den Zeilenanfang und ein $ was das Zeilenende darstellt.. MfG + Multi-Zitat Zitieren
#3 15. November 2011 AW: einfache Regex-Abfrage Durch den * reagiert dein RegExp auch auf einen Leeren String, daher Tausche den * gegen ein + PHP: <? phppreg_match ( '/^[a-z]+$/' , 'aaaa' , $matches ); print_r ( $matches ); ?> + Multi-Zitat Zitieren
#4 15. November 2011 AW: einfache Regex-Abfrage mag wer benchmarken? ^^ sollte ca. 3x schneller sein PHP: if ( ctype_lower ( $str )) { // yada yada yada } + Multi-Zitat Zitieren
#5 15. November 2011 AW: einfache Regex-Abfrage Mmh wusst ich's doch, dass das * da nicht ganz richtig ist... Aber aufs + bin ich nicht gekommen + Multi-Zitat Zitieren
#6 15. November 2011 AW: einfache Regex-Abfrage Ok, danke hat mir alles weitergeholfen. Hab mich am Anfang falsch ausgedrückt da ich nicht-kleinbuchstaben-zeichen finden wollte um abzubrechen, da es mir ja ansonsten kleinbuchstaben sucht. + Multi-Zitat Zitieren
#8 16. November 2011 AW: einfache Regex-Abfrage PHP: <? php preg_match ( '/^[^a-z]+$/' , 'aaaa' , $matches ); print_r ( $matches ); ?> Ist jetzt ungetestet, sollte aber funzen.. Hättest du dir auch aus meinem vorherigen Post zusammenbauen können ;-) + Multi-Zitat Zitieren
#9 16. November 2011 AW: einfache Regex-Abfrage Den Benchmark "Nativ vs. RegExp" hättest ihr euch sparen können Wie Murdoc schon schreibt heißt die Lösung ctype_lower(), stellt man ein ! davor wird das Ergebnis umgedreht und man hat was man wollte. PHP: <? PHP $str = 'aaaa' ; if ( ! ctype_lower ( $str )) { // yada yada yada } + Multi-Zitat Zitieren
#10 16. November 2011 AW: einfache Regex-Abfrage Gut kann man auch machen.. Das geht jedoch nur, wenn du auch wirklich NUR Großbuchstaben haben willst und keine Sonderzeichen etc... Oder anstatt das zu negieren, kannste auch gleich ctype_upper() nehmen.. MfG + Multi-Zitat Zitieren
#11 17. November 2011 AW: einfache Regex-Abfrage Wieso? Ich hoffe Du gehst nicht davon aus, dass wir glaubten, dass Nativ nicht schneller sei. Hier geht's nur darum, /wieviel/ schneller. + Multi-Zitat Zitieren