Ein Regex für Pekka!

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

  • Ein Regex für Pekka!

    Hat jemand Lust, mir einen Regex zu bauen? Wäre mir eine große Hilfe:

    Gib aus einem String alle Strings zwischen zwei Gradzeichen (° bzw. \%7D) zurück, bei denen der Abstand zwischen den Gradzeichen kleiner ist als 20 Zeichen.

    Also

    .. Lorem Ipsum Dolor Sit Amet, °display° Convivium sit amet
    => Match "display"

    ° .. Lorem Ipsum Dolor Sit Amet, Convivium sit amet°
    => Kein Match

  • #2
    Code:
    #°([^°]{1,20})°#
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Vielen Dank!

      Kommentar


      • #4
        Das gehört ja eigentlich in die Projekthilfe . Aber auf die Schnelle:
        PHP-Code:
        $string_1 '.. Lorem Ipsum Dolor Sit Amet, °display° Convivium sit amet ';
        $string_2 '° .. Lorem Ipsum Dolor Sit Amet, Convivium sit amet° ';
        preg_match ('/°(\S.*?)°/',$string_1$hits);
        print_r($hits);
        preg_match ('/°(\S.*?)°/',$string_2$hits);
        print_r($hits); 
        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Zitat von Kropff Beitrag anzeigen
          Das gehört ja eigentlich in die Projekthilfe .
          Das stimmt, beachte ich beim nächsten Mal.
          Ebenfalls vielen Dank!

          Kommentar


          • #6
            Mist! Zu spät.
            Ich hätte den hier vorgeschlagen:

            '/°.{0,19}?°/s'

            in preg_match_all() verpackt:

            PHP-Code:
            $haystacks = array (
                
            '.. Lorem Ipsum Dolor Sit Amet, °display° Convivium sit amet',
                
            '° .. Lorem Ipsum Dolor Sit Amet, Convivium sit amet°',
                
            // Mindestabstand (0)
                
            '°°',
                
            // Maximalabstand (19)
                
            "all those who remember the war they won't °forget what they've° seen",
                
            // preg_split() waere eine Alternative, falls nicht
                
            '°abcd°war-das-so-gewollt?°efgh°',
            );

            foreach (
            $haystacks as $haystack) {
                
            $hits preg_match_all(
                    
            '/(?<=°).{0,19}?(?=°)/s'$haystack$hitsPREG_PATTERN_ORDER
                
            ) ? $hits[0] : NULL;
                
            var_dump($hits);

            Zuletzt geändert von fireweasel; 22.10.2009, 19:52. Grund: bis 19 zählen müsste man können ;-)
            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

            Kommentar

            Lädt...
            X