Mit RegEx zeilen zählen und ab Xter Zeile Text löschen

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

  • Mit RegEx zeilen zählen und ab Xter Zeile Text löschen

    Hi Leute,

    ist es möglich mit RegEx schnell, sauber und einfach (also ohne weiteren komplexeren Code, der eventuell die Ladezeit verlangsamen könnte) bei einem Text die Zeilen zu zählen und ab einer bestimmten Zeile den Text zu löschen?

    Bsp.:
    "Dies ist ein
    schöner Text
    zu probieren
    und zum anschauen
    des Inhalts."

    Ab der 3ten Zeile dann per RegEx alles filtern und so aussehen lassen:
    "Dies ist ein
    schöner Text
    zu probieren"


    arrays sind klasse

  • #2
    QaD und ohne regex


    PHP-Code:
    $head 3;

    $text 'Dies ist ein
    schöner Text
    zu probieren
    und zum anschauen
    des Inhalts.'
    ;

    $text_exp explode ("\n"$text);
    $text_neu_arr = array();

    if (
    $head count($text_exp))
        
    $text_neu $text;
    else
    {
        for (
    $i=0;$i<$head;++$i)
            
    $text_neu_arr[] = $text_exp[$i];
        
    $text_neu implode("\n"$text_neu_arr);
    }

    echo 
    $text_neu
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      also ohne weiteren komplexeren Code
      Code:
       /(.*\n){3}/i
      per preg_match
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        @ derHund

        danke genauso wollte ich es.
        Nur ist noch ein kleiner Fehler vorhanden.

        PHP-Code:
        $string "Dies ist ein
        schöner Text
        zu probieren
        und zum anschauen
        des Inhalts."
        ;

        echo 
        nl2br(preg_replace("/(.*\n){3}/i"""$string)); 
        das wirft allerdings nur die letzten beiden zeilen aus und nicht die ersten drei.
        arrays sind klasse

        Kommentar


        • #5
          Original geschrieben von derHund
          per preg_match
          nicht per preg_replace

          Kommentar


          • #6
            Code:
            ~(([^\n]+\n){3})(.+)~is
            per preg_replace ... replacement sollte \1 sein
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              JUHU - mehr als perfekt! Danke dir
              arrays sind klasse

              Kommentar

              Lädt...
              X