Zeilen aus einem Multiline-Variable entfernen
andi123
- perl
Hallo habe folgenden Variable:
---schnipp---
$webseite="
~Mi~27.11.2002~ ~22:00 - ~7:00~ ~Universitätsklinikum
~Do~28.11.2002~ ~19:00 - ~22:00~ ~Dr. med.
~Do~28.11.2002~ ~22:00 - ~7:00~ ~Universitätsklinikum
~Fr~29.11.2002~ ~19:00 - ~22:00~ ~Dr.med.dent.
~Fr~29.11.2002~ ~22:00 - ~7:00~ ~Universitätsklinikum
~Sa~30.11.2002~ ~8:00 - ~7:00~ ~Universitätsklinikum
~So~1.12.2002~ ~8:00 - ~7:00~ ~Universitätsklinikum "
---schnipp---
Jetzt moechte ich alle Zeilen, die NICHT den String '28.11.2002' beinhalten aus dieser Variable loeschen.
Wie geht das?
Danke Andi123
use Mosche;
Hallo habe folgenden Variable:
---schnipp---
$webseite="
~Mi~27.11.2002~ ~22:00 - ~7:00~ ~Universitätsklinikum
[...]
~So~1.12.2002~ ~8:00 - ~7:00~ ~Universitätsklinikum "
---schnipp---Jetzt moechte ich alle Zeilen, die NICHT den String '28.11.2002' beinhalten aus dieser Variable loeschen.
Wie geht das?
Das sind doch alles Perl-Basics!
my $searched = '28.11.2002';
$webseite = join("\n", grep { /$searched/ } split(/\n/, $webseite));
siehe dazu:
perldoc -f split
perldoc -f grep
perldoc -f join
use Tschoe qw(Matti);
Hallo Matti,
my $searched = '28.11.2002';
my $searched = quotemeta '28.11.2002';
oder
my $searched = '28.11.2002';
Gruesse,
CK
use Mosche;
my $searched = '28.11.2002';
my $searched = quotemeta '28.11.2002';
Das hatte ich ursprünglich auch so geschrieben (direkt in der RE), dann aber beim ändern in die eigene Variable vergessen :-(
use Tschoe qw(Matti);
» Das sind doch alles Perl-Basics!
Mag sein. Aber wenn ich es nicht weiss ...
my $searched = '28.11.2002';
$webseite = join("\n", grep { /$searched/ } split(/\n/, $webseite));
Hm, funktionieren tut es bei mir aber nicht.
Da werden alle Zeilen wie bisher angezeigt.
Danke Andi
use Mosche;
my $searched = '28.11.2002';
$webseite = join("\n", grep { /$searched/ } split(/\n/, $webseite));
Hm, funktionieren tut es bei mir aber nicht.
Da werden alle Zeilen wie bisher angezeigt.
Hast du dir meine Lektürenhinweise angesehen? Ich verbalisiere mal obige Zeile:
Teile deinen Text in mehrere Texte auf, die jeweils durch einen Zeilenumbruch getrennt sind (split()). Daraus nimmst du dir die Zeilen, die den Text '28.11.2002' enthalten (grep). Diese Texte setzt du wieder zu einem einzigen Text zusammen, wieder durch einen Zeilenumbruch getrennt (join()). Programmier das mal ausführlich in Perl, dann wirst du:
a) die richtige Lösung haben und
b) besser Perl können. Das wird dir mehr helfen, als wenn du hier die Lösung vorgekaut bekommst.
use Tschoe qw(Matti);