Problem mit regulärem Ausdruck

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit regulärem Ausdruck

    ich bin am verzweifeln...


    ich habe folgenden string und möchte daraus eine nur 5 stellige zahl, die zwischen 10000 und 99999 liegt extrahieren.

    PHP-Code:


    $str    
    =    'Hier ist ein Text und diese Zahl 12345 will ich aber nichts aus dieser 33444556';
    $exp    =    '/^(\D{1}.*)?([1-6][0-9]{4})(\D{1}.*)?$/';

    preg_match($exp$str$replace);

    print_r($replace); 
    das funktioniert, wenn nur eine zahl im string steht, wenn aber eine weitere, auch längere drin steht kommt nur quark bei raus.

    ich hab schon so viel dran rumgeschraubt...

    bitte um hilfe!
    fragen macht spass, denken nicht

  • #2
    Probiers mal so
    PHP-Code:
    preg_match('/\\b\\d{5}\\b/',$str,$replace); 
    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      AHHH! danke!!!


      das hatte ich doch auch schon.... ich versteh's nicht, was ich da falsch gemacht hatte.

      und wenn ich's so mach, dann hab ich auch noch den bereich von 10000 - 69999
      sorry, hatte ich vorher falsch beschrieben.



      PHP-Code:
      preg_match('/\b[1-6][0-9]{4}\b/',$str,$replace); 
      aber was mach ich wenn jemand:



      PHP-Code:
      $str    =    'sowas23244 schreibt?'
      also die zahl zusammen mit den buchstaben dort steht,

      krieg ich das auch irgendwie raus?
      fragen macht spass, denken nicht

      Kommentar


      • #4
        Ein \b steht für eine Wortgrenze. Ein \B steht für keine Wortgrenze. An diesen kannst du drehen um das gewünschte Resultat zu erhalten.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Re: Problem mit regulärem Ausdruck

          hm... ich würde sagen
          /(?<![0-9])[1-9][0-9]{4}(?![0-9])/

          oder so in der Art *gerade keine Lust hat seinen Webserver anzuwerfen*


          oder um den von jahlives aufzugreifen
          /(\b|^)\d{5}(\b|$)/
          ich schätze mal einfach, dass man Anfang und Ende extra behandeln muss

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            alles klar, dann probier ich's noch mal!

            danke jedenfalls, dass ihr mir geholfen habt!
            fragen macht spass, denken nicht

            Kommentar

            Lädt...
            X