Thread Regulärer Ausdruck zum Suchen eines Wortes (4 answers)
Opened by Anton Mehl at 2012-07-11 15:33

Raubtier
 2012-07-11 16:21
#159749 #159749
User since
2012-05-04
1076 Artikel
BenutzerIn
[default_avatar]
Guest Anton Mehl
Nun möchte ich die Datei Zeile für Zeile mit einem regulären Ausdruck
nach "ProductName=" prüfen und anschließend alles, was nach dem Gleichzeichen kommt in eine Variablem speichern.


Alles was danach kommt oder nur alles bis zum Zeilenende?


Code: (dl )
for (my $z=0; $z<$anzahl_elemente; $z++) {

Das sieht eher nach C aus... Warum loopst du nicht einfach direkt über die Pfade? Also etwa
Code: (dl )
for my $pfad (@pfade) { ... 


Und nun zum eigentlichen Problem:
Code: (dl )
1
2
	while (<$fh> && $pruef ==0) {
$_= <$fh>;

Hier liest zu eine Zeile in dem while ein und dann die nächste Zeile mit dem Befehl $_ = <$fh>. Das willst du aber nicht.

Außerdem brauchst du hier kein substr, das erledigst du gleich im RE. Als Beispiel:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
while(<DATA>) {
if (/^ProductName=(.*)/) {
my $restDerZeile = $1;
print "Rest der Zeile: $1";
last; # du kannst hiermit die Loop verlassen und braucht keine extra Variable
}
}
__DATA__
ProductName=LT0G
ProductNameShort=short

Last edited: 2012-07-11 16:25:32 +0200 (CEST)

View full thread Regulärer Ausdruck zum Suchen eines Wortes