robome: regulärer Ausdruck zum Parsen einer Koordinate gesucht

Beitrag lesen

Hallo auch

auspacken!

/([+-])?([\d.]+)[^\d.SWNE]*([\d.]+)?[^\d.]*?([\d.]+)?[^\d.]*?(S|W|N|O)?$/;

Es ist wohl ersichtlich wieso ich auf die Regex nicht allzu stolz bin. Und obwohl sie bisher alle Tests überstand bin ich mir noch nichtmal sicher dass sie alles schluckt.

ich orientiere mich an den beispielen:

$str=~/^([+-]?)(.*?)([NSWO]?)\s+\z/;
  my $vorzeichen = $1;
  my $himmelsrichtung = $3;
  my @zahlen = split /[^+0-9.-]+/, $2;


>   
> hab's nicht ausprobiert. aber so in etwa sollte es funzen.  
  
Danke Dir!  
Wenn ich \s+ weglasse, funktioniert es.  
Sieht gut aus, split hatte ich ganz vergessen.  
  

> > Je einfacher der Ausdruck zu lesen (für den Menschen) und je schneller er auszuführen ist, desto besser.  
>   
> haeufig frisst das eine das andere.  
  
So anscheinend auch hier.  
Mein Bandwurm benötigt ca. 40% weniger Zeit, ist aber schlechter lesbar.  
  
Ciao,  
Robert