testnutzer: regexp

<?php
$testpattern = '/[1]+$/i';
if(!preg_match($testpattern, 'abcd')){
echo 'Keine Buchstaben a bis c';
}
?>

Das sollte doch eingentlich prüfen ob die Buchstaben a bis c enthalten sind. Und wenn sie vorkommen, dann gibt es eine Meldung.
Aber warum funktioniert es nicht.


  1. a-c ↩︎

  1. Hallo testnutzer.

    <?php
    $testpattern = '/[1]+$/i';
    if(!preg_match($testpattern, 'abcd')){
    echo 'Keine Buchstaben a bis c';
    }
    ?>

    Das sollte doch eingentlich prüfen ob die Buchstaben a bis c enthalten sind. Und wenn sie vorkommen, dann gibt es eine Meldung.
    Aber warum funktioniert es nicht.

    Dein Muster trifft auf Zeichenketten zu, welche mit einem oder mehr Zeichen von „a“ bis „z“ beginnen und enden. Das trifft auf dein $testpattern nicht zu, da dieses auf „d“ endet. Also gibt preg_match false zurück; invertiert also true → Ausgabe.

    Einen schönen Freitag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules

    1. a-c ↩︎

    1. Hallo nochmal.

      <?php
      $testpattern = '/[1]+$/i';
      if(!preg_match($testpattern, 'abcd')){
      echo 'Keine Buchstaben a bis c';
      }
      ?>

      Das sollte doch eingentlich prüfen ob die Buchstaben a bis c enthalten sind. Und wenn sie vorkommen, dann gibt es eine Meldung.
      Aber warum funktioniert es nicht.

      Dein Muster trifft auf Zeichenketten zu, welche mit einem oder mehr Zeichen von „a“ bis „z“ beginnen und enden.

      Chigau! Von „a“ bis „c“ natürlich.

      Einen schönen Freitag noch.

      Gruß, Mathias

      --
      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
      debian/rules

      1. a-c ↩︎

    2. stimmt, das hier funktioniert dann.

      $testpattern = '/[a-c]+/i';

      1. Hi!

        stimmt, das hier funktioniert dann.
        $testpattern = '/[a-c]+/i';

        Arbeitest du mit Windows?
        Dann gibt es ein paar klasse Programme für dich, wenn du reguläre Ausdrücke entwickeln willst.
        Ich empfehle den kostenlosen RegEx Coach.
        Viel einfacher wäre der einfache (und ebenfalls kostenlose) RegEx Tester.

        Aber wie gesagt: Ich würde den RegEx Coach empfehlen.
        Damit kannst du RegExe entwickeln und testen.
        Außerdem kannst du dir einen RegEx damit sozusagen in "normale Sprache" übersetzen lassen oder hübsch dargestellt im "Tree-View".
        Ein sehr geniales und verdammt hilfreiches Tool.
        Auf der Website gibt es auch gleich noch ein Tutorial mit dazu.

        Schöner Gruß,
        rob

      2. gudn tach!

        das hier funktioniert dann.

        $testpattern = '/[a-c]+/i';

        das geht noch einfacher und schneller:

        $testpattern = '/[a-c]/i';

        prost
        seth