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

splitten...: seeeehr einfach.



<< |< 1 2 3 >| >> 21 Einträge, 3 Seiten
Gast Gast
 2006-06-01 00:04
#66882 #66882
Hallo,

ich möchte bei
user=some1;
password=secret;
jeweils den linken Teil ($left) und den rechten Teil getrennt als Strings abspeichern, und zwar ohne = und ;.
GwenDragon
 2006-06-01 00:23
#66883 #66883
User since
2005-01-17
14785 Artikel
Admin1
[Homepage]
user image
Die Zeile ist in $string abgelegt.
Code: (dl )
($left, $right) = $string =~ "^(.+)?=(.+)?;";
\n\n

<!--EDIT|GwenDragon|1149107107-->
Linuxer
 2006-06-01 00:28
#66884 #66884
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Ohne aufwendigen Regex:

Code (perl): (dl )
1
2
3
4
5
$aa = "var=wert;";
# split into pieces
($ll,$rr) = split(/[=;]/,$aa);
# show pieces
print $ll, $/, $rr, $/;
\n\n

<!--EDIT|Linuxer|1149107407-->
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!
pq
 2006-06-01 00:41
#66885 #66885
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=GwenDragon,31.05.2006, 22:23]
Code: (dl )
($left, $right) = $string =~ "^(.+)?=(.+)?;";
[/quote]
die fragezeichen gehören in die klammer, und eine regex schreibe ich
auch eigentlich immer als regex:
m/^(.+?)=(.+?);/
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2006-06-01 11:06
#66886 #66886
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Lesenswert zum Thema Reguläre Ausdrücke:

perlre
perlrequick
perlreref
perlretut

http://www.regenechsen.de

Aber das split - wie von Linuxer vorgeschlagen - dürfte einiges schneller sein. Und es ist leichter lesbar!
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/
GwenDragon
 2006-06-01 16:32
#66887 #66887
User since
2005-01-17
14785 Artikel
Admin1
[Homepage]
user image
[quote=pq,31.05.2006, 22:41][quote=GwenDragon,31.05.2006, 22:23]
Code: (dl )
($left, $right) = $string =~ "^(.+)?=(.+)?;";
[/quote]
die fragezeichen gehören in die klammer, und eine regex schreibe ich
auch eigentlich immer als regex:
m/^(.+?)=(.+?);/[/quote]
Oh nein. Was hab ich da am Abend bloss für einen Mist geschrieben. :blush:
Anscheinend war ich nicht mehr so wach.

Schlimmer wie jeder Perl-Neuling *imbodenversink*
Linuxer
 2006-06-01 16:56
#66888 #66888
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
[quote=GwenDragon,01.06.2006, 14:32]Schlimmer wie jeder Perl-Neuling *imbodenversink*[/quote]
hieße es nicht korrekter "schlimmer als" ? :D
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!
GwenDragon
 2006-06-01 19:11
#66889 #66889
User since
2005-01-17
14785 Artikel
Admin1
[Homepage]
user image
@Linuxer
:P

Es hat den Anschein, als wäre ich unter die Germanisten gefallen und sie verschlüngen mich mit Haut und Haar auf Grund der falschen Verwendung des "wie"!

Na ja, wer den Spott hat, schadet nicht mehr anderen.\n\n

<!--EDIT|GwenDragon|1149175093-->
Strat
 2006-06-01 19:20
#66890 #66890
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
also in tirol waere "schlimmer als wie" korrekt ;-)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
EagleFox
 2006-06-01 20:35
#66891 #66891
User since
2006-04-10
66 Artikel
BenutzerIn
[default_avatar]
zu "splitten seeeehr einfach" hätte ich auch noch ne Frage!

Ich schlage mich damit schon seit zwei Tagen rum und irgendwie bekomme ich das nicht auf die Reihe:

Ich möchte aus einer Datei drei Spalten lesen:
Beispiel:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
   0       -0.000912424468844902   0.62762408059371
1 0.000675065549537002 0.627065397466133
2 0.000484332582625535 0.625308742488732
3 -0.0012281774641632 0.627460441741493
4 0.000182147058509802 0.626054512760314
5 0.000822076152740048 0.624906322723839
6 0.00446087577499235 0.624913898931012
7 0.00292859674490606 0.624746634083201
8 -0.00483895330164147 0.627209690933305
9 -0.00515578164201294 0.621310686799618
10 -0.00282250572461448 0.622760132215714
11 0.000429300017162348 0.624575007438475
12 0.00173147576081034 0.628108183960249

ist ja auch nicht weiter schwer, aber es gibt auch Dateien, da fehlt die "Leerspalte":

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
0       -0.000912424468844902   0.62762408059371
1 0.000675065549537002 0.627065397466133
2 0.000484332582625535 0.625308742488732
3 -0.0012281774641632 0.627460441741493
4 0.000182147058509802 0.626054512760314
5 0.000822076152740048 0.624906322723839
6 0.00446087577499235 0.624913898931012
7 0.00292859674490606 0.624746634083201
8 -0.00483895330164147 0.627209690933305
9 -0.00515578164201294 0.621310686799618
10 -0.00282250572461448 0.622760132215714
11 0.000429300017162348 0.624575007438475
12 0.00173147576081034 0.628108183960249


Wie muss ich
Code: (dl )
1
2
3
$wert0 = (split(/\s+/,$line))[1];
$wert1 = (split(/\s+/,$line))[2];
$wert2 = (split(/\s+/,$line))[3];

umgestalten, so dass es mir in beiden Fällen die Richtigen Werte liefert???
<< |< 1 2 3 >| >> 21 Einträge, 3 Seiten



View all threads created 2006-06-01 00:04.