Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]9232[/thread]

Merkwürdiges RegEx Problem: nur für echte RegEx Experten :-( (Seite 2)



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
jubei
 2007-07-27 18:17
#78944 #78944
User since
2007-07-19
22 Artikel
BenutzerIn
[default_avatar]
deine fehlermeldung konnte ich folgendermassen rekonstruieren. vielleicht hast du irgendwo einen analogen fehler gemacht...

Code: (dl )
1
2
my $a = "/foo/bar.tif.pdf++";
my $b =~ $a;


wenn hier eine zuordnung stattfinden sollte $b=$a, man aber ausversehen =~ statt = benutzt wird $a als regex aufgefasst.

ich kann mir vorstellen, dass du irgendwo einer variablen deinen suchtext zuweisen willst und diesen fehler gemacht hast... nur ne idee, kannst das ja mal ueberpruefen...\n\n

<!--EDIT|jubei|1185546002-->
no1gizmo
 2007-07-30 13:27
#96797 #96797
User since
2007-02-20
21 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nein, dass kann ich ausschließen,

Habe ine Array @content, wo alle zu lesenden Zeilen drin sind. Diese gehe ich durhc und will die Bestandteile jeder Zeile anzeigen.. ($z => Zeile)

Code: (dl )
1
2
3
4
5
6
7
foreach my $z (@content)
{
$zeile =~ s/\015\012\|\015|\012//sg; // Lehrzeichen und Backspace entfernen
$z =~ qr/^(\d+:\d+):\d+-(\d+-\d+-\d+)-(\[^:]+):\d+\+([-\.\w_\@,]+)\+\d\+([-\+\.\w\s\/]+?\.tif)/x;

...
}
renee
 2007-07-30 13:44
#96800 #96800
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was hältst Du von
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @content = (
q~07:40:14-25-01-2007-Fax an:750895+Fax_AK-Reha@na.lsv.local+3+/var/spool/capifax/recvq/cfn0112107-05141723179.tif+/var/spool/capifax/recvq/cfn0112107-05141723179.tif.pdf+05141723179+0+0x3490~,
q~07:50:09-25-01-2007-Fax an:750030+FAX_KMB-GemB@na.lsv.local,ren.westphal@na.lsv.local,+1+/var/spool/capifax/recvq/cfn0112108-+49 5175 31278.tif+/var/spool/capifax/recvq/cfn0112109-+49 5175 31278.tif.pdf++49 5175 31278+0+0x3490~,);

for my $z ( @content ){
    my @info = $z =~ /^(\d+:\d+).*?(\d+-\d+-\d{4})-(.*?):\d+\+(.*?)\+\d\+(.*?\.tif)/;
    print Dumper \@info;
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
no1gizmo
 2007-07-30 17:02
#96834 #96834
User since
2007-02-20
21 Artikel
BenutzerIn
[Homepage] [default_avatar]
@renee: Danke für deine Mühe, aber es kommt noch immer die gleiche Fehlermeldung.

Es muss also irgendwas anderes sein, jetzt bin ich ratlos und ihr könnt mir auch nicht helfen :-/

kommt immer noch:

nested quantifiers before HERE mark in regex ..........tif.pdf++ << HERE 0+0x3490 at [verzeichnis] line 223, <STDIN> line 2

der fehler wird aber nur angezeigt, wenn ich $_ =~ m/$z/ im Quellcode habe:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
foreach my $z (@content)
{
  $z =~ s/\015\012\|\015|\012//sg;    // Lehrzeichen und Backspace entfernen
  $z =~ qr/^(\d+:\d+):\d+-(\d+-\d+-\d+)-(\[^:]+):\d+\+([-\.\w_\@,]+)\+\d\+([-\+\.\w\s\/]+?\.tif)/x;

  Ausgabe aller Werte:
  if ($_ =~ m/$z/)          
  {
     print "\n$1, $2, $3, $4, $5";
  }

..
}
no1gizmo
 2007-07-30 17:02
#96835 #96835
User since
2007-02-20
21 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wenn ich $_ =~ m/$z/ rausnehme, kreidet er den Fehler nicht mehr an, es besteht aber noch das Problem aus dem ersten Post, nämlich das bei

Code: (dl )
07:40:14-25-01-2007-Fax an:750895+Fax_AK-Reha@na.lsv.local+3+/var/spool/capifax/recvq/cfn0112107-05141723179.tif+/var/spool/capifax/recvq/cfn0112107-05141723179.tif.pdf+05141723179+0+0x3490


alles richtig übernommen wird ($1: 07:40, $2: 25-01-2007, $3: Fax an, $4: Fax_AK-Reha@na.lsv.local, $5: /var/spool/capifax/recvq/cfn0112107-05141723179.tif)

bei
Code: (dl )
07:50:09-25-01-2007-Fax an:750030+FAX_KMB-GemB@na.lsv.local,ren.westphal@na.lsv.local,+1+/var/spool/capifax/recvq/cfn0112108-+49 5175 31278.tif+/var/spool/capifax/recvq/cfn0112109-+49 5175 31278.tif.pdf++49 5175 31278+0+0x3490


Sind alle Werte leer, nichts wird gefunden.
Und genau dies ist der Fall bei allen Zeilen in denne ".tif.pdf++49" vorkommt.

Ich verstehe es nicht!!! :-(
renee
 2007-07-30 17:30
#96838 #96838
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du benutzt $z einmal als Zeile und einmal als RegEx!

Mein Skript funktioniert so wie ich es gepostet habe. Wie hast Du es denn bei Dir eingebaut?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2007-07-26 20:16.