Thread Regulärer Ausdruck, Zeilenumbruch (15 answers)
Opened by Teesemmel at 2007-10-17 13:11

Teesemmel
 2007-10-17 14:51
#100970 #100970
User since
2007-10-16
7 Artikel
BenutzerIn
[default_avatar]
Danke schon mal für eure Antworten. Ich habe mal mein Skript reduziert und hoffe dass ihr mir evtl helfen könnt dass es funktioniert.

Also ich habe folgendes Ausgangsfile (testinput.txt):

Code: (dl )
1
2
3
4
5
anderer text
123, 456, 789, 910
546, 879, 456, 123
testende
bla bla bla



und dazu folgendes Skript:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/local/bin/perl
############################
use strict;
use warnings;
use Fcntl qw/O_RDONLY O_WRONLY O_CREAT O_EXCL/;

my $file = 'testinput.txt';
my $tmp = 'output.txt';

sysopen(INPUT, $file, O_RDONLY) or die "unable to open the input file";    #Datei wird systemnah, nur zum Lesen, geöffnet
sysopen(OUTPUT, $tmp, O_WRONLY | O_CREAT) or die "unable to open job2.inp: $!";

while(my $test = <INPUT>)
  {
  print OUTPUT $test;
  if ($test =~/(anderer text)\n((\s*[0-9]*,)*(\s*[0-9]*)\n)*/)
  {
  print "okay, passt\n";

    while($test = <INPUT>)
    {
    if ($test =~/(testende)/)
      {
      print OUTPUT "das ist der text \n";
      print OUTPUT $test;
      print "jetzt steht was drin";
      }
    }
  }
  }
close (INPUT);
close (OUTPUT);


in dem Output File soll am Ende folgendes stehen:
Code: (dl )
1
2
3
4
5
6
anderer text
123, 456, 789, 910
546, 879, 456, 123
das ist der text
testende
bla bla bla


wenn ich die Zeile
Code (perl): (dl )
  if ($test =~/(anderer text)\n((\s*[0-9]*,)*(\s*[0-9]*)\n)*/)
folgendermaßen schreibe:

Code (perl): (dl )
if ($test =~/(456),\s*(123)/)

dann funktioniert es (aber so kann ich es nicht brauchen).
Lasse ich aber

Code (perl): (dl )
  if ($test =~/(anderer text)\n((\s*[0-9]*,)*(\s*[0-9]*)\n)*/)

dann sieht der Output folgendermaßen aus:
Code: (dl )
1
2
3
4
anderer text
das ist der text
testende
bla bla bla


Daher hege ich die starke Vermutung dass irgendwas an dem RA nicht passt?

Vielen Dank für eure Antworten!
Gruß Max

View full thread Regulärer Ausdruck, Zeilenumbruch