Pascal: Reguläre Ausdrücke: Bestimmte Wortanzahl in Zeilen

Hallo,

ich habe eine Frage zu Regulären Ausdrücke:
Ich habe einen langen Text, der mit Zeilenumbrüchen unterteilt ist. In diesem soll nun ein eine Stelle gefunden werden, die genau x Wörter (oder als Beispiel 80 Wörter) enthält, aber sich von einem Zeilenanfang bis zu einem beliebigen Zeilenende erstrecken soll. Also die gefundene Stelle muss an einem Zeilenanfang beginnen und an einem (anderen) Zeilenende enden und genau x Wörter enthalten.

Ist dies irgendwie möglich?

Vielen Dank für eure Hilfe!

Pascal

  1. gudn tach!

    Ich habe einen langen Text, der mit Zeilenumbrüchen unterteilt ist. In diesem soll nun ein eine Stelle gefunden werden, die genau x Wörter (oder als Beispiel 80 Wörter) enthält, aber sich von einem Zeilenanfang bis zu einem beliebigen Zeilenende erstrecken soll.

    Ist dies irgendwie möglich?

    ja. in perl z.b. so:
    print $1."\n" if($str=~/(^(?:\w+\W+){80}$)/m);

    beachte vor allem den m-modifier (erklaerung im verlinkten perl-manual).

    prost
    seth

    1. Hallo,
      vielen Dank für deine Antwort!

      ja. in perl z.b. so:
      print $1."\n" if($str=~/(^(?:\w+\W+){80}$)/m);

      Aber dieser Ausdruck besagt doch, dass die 80 Wörter in einer Zeile stehen müssen, oder?
      Ich such nach einer Möglichkeit, zu überprüfen, ob das 1. Wort an einem Zeilenanfang und das 80. an einem beliebigen Zeilenende steht. Das erste und das letzte Wort können durchaus in verschiedenen Zeilen stehen.

      Vielen Dank!

      Viele Grüße

      Pascal

      1. Aber dieser Ausdruck besagt doch, dass die 80 Wörter in einer Zeile stehen müssen, oder?

        Nein, '\W' umfaßt durchaus auch Zeilenumbrüche.

        Grüße

        1. Aber dieser Ausdruck besagt doch, dass die 80 Wörter in einer Zeile stehen müssen, oder?
          Nein, '\W' umfaßt durchaus auch Zeilenumbrüche.

          Ja, aber werden sie nur dann geschluckt, wenn der m-Modifier angegeben ist.

          Siechfred

          --
          Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
          1. Aber dieser Ausdruck besagt doch, dass die 80 Wörter in einer Zeile stehen müssen, oder?
            Nein, '\W' umfaßt durchaus auch Zeilenumbrüche.

            Ja, aber werden sie nur dann geschluckt, wenn der m-Modifier angegeben ist.

            Ja, stimmt. Vielen Dank, jetzt habe auch ich es hinbekommen.
            Vielen Dank für eure Mühe!

            Schönen Feiertag noch

            Pascal

          2. gudn tach!

            Aber dieser Ausdruck besagt doch, dass die 80 Wörter in einer Zeile stehen müssen, oder?
            Nein, '\W' umfaßt durchaus auch Zeilenumbrüche.

            ack.

            Ja, aber werden sie nur dann geschluckt, wenn der m-Modifier angegeben ist.

            nein. der m-modifier hat nur einfluss auf ^ und $.

            so gibt z.b.
              print ord($1),"\n" if("foo\nbar"=~/(\W)/);
            10 aus.

            prost
            seth