schwieriger regulärer Ausdruck...
Falk Pauser
- perl
hi!
folgendes problem macht mir derzeit zu schaffen: ich öffne eine textdatei und packe alle zeilen in ein array. dann möchte ich via
regulärer expressionen :) bestimmte teile aus diesem string extrahieren, in etwa so:
$str = "blabla bla blablabla [sdsf] bla blabla [aaaaaa]";
zurueckgegeben werden soll "[sdsf]" und "[aaaaa]"... (am besten auch noch ohne die eckigen klammern...
ich suche mittels "/([)*(])/" und erhalte auch treffer, aber eben nur maximal einen pro zeile (string) - daher meine frage:
1. wie kann ich in einer zeile mehrere treffer landen
und
2. wie kann ich die betreffenden stringstuecke in einen eigenen string bekommen? (oder in ein array)
vielen dank für eure hilfe!
mfg
-p-
ps: bitte nicht gleich mit manuals werfen - hab' ich auch, bin trotzdem noch immer zu keiner lösung gekommen - es wäre wirklich nett, wenn da jemand mit einem beispiel dienen könnte - die forumssuche hat diesbezueglich uebrigens auch nichts ergeben...
hi ho
$str = "blabla bla blablabla [sdsf] bla blabla [aaaaaa]";
while ($str=~/[([^]]*)]/g) {
$1 = Inhalt aller [] ohne dieselben
}
cua
n.d.p.
p.s.: perldoc perlre .-))
hi!
$str = "blabla bla blablabla [sdsf] bla blabla [aaaaaa]"
while ($str=~/[([^]]*)]/g) {
$1 = Inhalt aller [] ohne dieselben
}
Anmerkung: m// zum Finden von regulären Ausdrücken gibt natürlich im
Listenkontext alle seine Ergebnisse zurück:
=== cut ===
#!/usr/bin/perl
my $str = "blabla bla blablabla [sdsf] bla blabla [aaaaaa]";
my @list = ($str =~ /[([^]]*)]/g);
=== cut ===
bye, Frank!