Reguläre Ausdrücke
Stefan
- perl
Einen wunderschönen guten Morgen!
Meiner einer hat mal wieder ein kleines Problem zu Perl.
Genauer gesagt geht es um die regulären Ausdrücke.
Ich möchte aus einem String den kompletten Teil nach dem '=' bis zum Zeilenende auslesen. Mit $lat=~ m/=.*$/g funktioniert das auch ganz gut, nur dummerweise ist noch das '=' mit enthalten. Nun könnte ich es ja einfach entfernen oder ersetzen aber das ist mir bei der Fülle an Dateien die das Programm später durchkämmen soll einfach zuviel Aufwand. Gibt es nicht vielleicht einfach eine Möglichkeit gleich bei der Suchabfrage das '=' wieder rauszuschmeißen????
Hoffe ihr könnt mir weiterhelfen....ich bedank mich schonmal im vorraus.
viele Grüße
Stefan
Halli,
Ich möchte aus einem String den kompletten Teil nach dem '=' bis zum Zeilenende auslesen. Mit $lat=~ m/=.*$/g funktioniert das auch ganz gut, nur dummerweise ist noch das '=' mit enthalten.
Sicher kann man das auch mit einem Regex lösen ( /[^=]*$/ ), aber ich würde eher mit den beiden Funktionen index und substr arbeiten. Denn das Problem erfordert es nicht, einen Regex zu nutzen.
cu,
Robert
Hi Robert,
Sicher kann man das auch mit einem Regex lösen ( /[^=]*$/ ), aber ich würde eher mit den beiden Funktionen index und substr arbeiten. Denn das Problem erfordert es nicht, einen Regex zu nutzen.
Also mit dem Regex funktioniert es nicht....denn da liest er einfach alles ein, auch das was vor dem '=' steht.
Die Funktionen index und substr sind mir unbekannt...kannst du mir vielleicht sagen wo ich Infos zur Verwendung der Funktionen finde oder vielleicht sogar selbst kurz erklären was du meinst???
greez
Stefan
Halli
Sicher kann man das auch mit einem Regex lösen ( /[^=]*$/ ), aber ich würde eher mit den beiden Funktionen index und substr arbeiten. Denn das Problem erfordert es nicht, einen Regex zu nutzen.
Also mit dem Regex funktioniert es nicht....denn da liest er einfach alles ein, auch das was vor dem '=' steht.
Nein.
Die Funktionen index und substr sind mir unbekannt...kannst du mir vielleicht sagen wo ich Infos zur Verwendung der Funktionen finde oder vielleicht sogar selbst kurz erklären was du meinst???
Da, wo Du zu allen Funktionen/Modulen Hilfe findest: perldoc
perldoc -f index
perldoc -f substr
mit index die Position des = feststellen, mit substr dann den gewünschten Teilstring extrahieren.
cu,
Robert
Moin Moin !
$line='some key = some value (may have "=" inside)';
($key,$value)=split /=/,$line,2;
print $key; # 'some key '
print $value; # ' some value (may have "=" inside)'
Mit split /\s*=\s*/,$line,2 werden die Spaces rund ums "=" auch noch entfernt.
Alexander