Hi,
2012-04-23T11:47:28
maxrittiHi,
tjo, warum mit Perl?
Ich fange damit halt gerade ein wenig an und dachte, dass das gut passt zu dem was ich brauche.
Substr hatte ich auch schon unter der Tastatur, habs dann aber vertagt.
Wie immer gibts ja mehrere Wege zum Ziel :)
ich fragte nur nach "Warum Regex?" nicht "Warum Perl?" und aus Neugierde warum Du Dich auf Regex festlegst.
Zum Üben und Ausprobieren ist das Beispiel schon verwendbar.
Im produktiven Einsatz würde ich es anders lösen (wahrscheinlich mit einer split Lösung oder evtl. gar mit einem passenden Modul).
In meinem Fall ist es ausgeschlossen, dass P= und I= vertauscht sind.
[/quote]
OK, ich wollte nur der Vollständigkeit halber darauf hinweisen.
2012-04-23T11:47:28
maxrittiAllerdings das mit dem Teilstrings, die da auftauchen können (also zwischen P= und I=) verstehe ich nicht ganz.
if( $str=~/P=(.+?),I=(.+?)$/ ) {
Bedeutet (.+?) nicht, dass egal was für Zeichen auftauchen, bis zu ,I= gelesen wird?
darunter würde dann doch auch ,O= fallen.
Da hatte ich einen Denkfehler. Guifreund hat ja auch schon drauf hingewiesen.
Das erste
(.+?) sammelt alles bis zum (ersten) Teilstring
,I= ein, auch andere Zuweisungen.
.+ ist gierig und
.+? ist nicht gierig.
my $str = "text ";
if ( $str =~ m/(.+)\s*$/ ) {
print ">$1<\n";
}
if ( $str =~ m/(.+?)\s*$/ ) {
print ">$1<\n";
}
Last edited: 2012-04-24 12:22:22 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!