Regulärer Ausdruck will nicht wie ich will
Ron
- perl
Hallo,
hab da schwierigkeiten mit einem regulären Ausdruck.
Für nen geübten bestimmt kein Problem.
Eigentlich möchte ich einfach nur prüfen ob eine Variable einen bestimmten String enthält. ist dieser enthalten, soll mit dem nächsten weitergemacht werden.
my $ausschliessen="wärme wärme";
next if ($inhalt =~ /$ausschliessen/i);
wenn ich nur nach "wärme" suche klappt es.
aber Datensätze mit nur "wärme" sollen ja verarbeitet werden.
Möchte nur die mit "wärme wärme" rausfischen...
Probleme scheint das Leerzeichen zu machen.
Kann mir da jemand netterweise auf die Sprünge helfen?
Gruß Ron
Hallo Ron,
also Dein Ausdruck sucht nach Wörten die "wärme wärme" enthalten
$ausschliessen="wärme wärme";
$inhalt = "wärme";
if ($inhalt =~ /$ausschliessen/i) {
print $ausschliessen." gefunden";
}
else {
print $ausschliessen." nicht gefunden";
}
gibt
wärme wärme nicht gefunden
aus.
Ist es das, was Du erwartest? Oder das Gegenteil?
Gruß
Paul
Hallo Ron,
also Dein Ausdruck sucht nach Wörten die "wärme wärme" enthalten
$ausschliessen="wärme wärme";
$inhalt = "wärme";
if ($inhalt =~ /$ausschliessen/i) {
print $ausschliessen." gefunden";
}
else {
print $ausschliessen." nicht gefunden";
}gibt
wärme wärme nicht gefunden
aus.Ist es das, was Du erwartest? Oder das Gegenteil?
Gruß
Paul
Hi,
musste plötzlich weg vom rechner, deshalb jetzt erst meine antwort....
ja das war es.
beispiel:
1 wärme wärme und so weiter
2 wärme macht nichts
3 ohne wärme is auch gut
dann soll der erste ignoriert werden.
ich suche nach speziel dieser "phrase: "wärme wärme"
Gruß Ron
1 wärme wärme und so weiter
2 wärme macht nichts
3 ohne wärme is auch gutdann soll der erste ignoriert werden.
ich suche nach speziel dieser "phrase: "wärme wärme"
wie wär's mit index?
Struppi.
Hi Ron,
$ausschliessen="wärme wärme";
1. if ("wärme" =~ /$ausschliessen/i)
2. if ("wärme macht nichts" =~ /$ausschliessen/i)
Diese IF-Abfrage ergibt für Fall 1 true, für Fall 2 false. So wie ich das sehe, solltest Du Deine IF-Abfrage negieren (umkehren), damit Du Dein gewünschtes Ergebnis erhälst.
Gruß
Paul
Diese IF-Abfrage ergibt für Fall 1 true, für Fall 2 false. So wie ich das sehe, solltest Du Deine IF-Abfrage negieren (umkehren), damit Du Dein gewünschtes Ergebnis erhälst.
es gibt auch !~
#! /usr/bin/perl -w
use strict;
my $ausschliessen = "wärme wärme";
my @inhalt = (
"wärme wärme und so weiter",
"wärme macht nichts",
"ohne wärme is auch gut"
);
foreach(@inhalt)
{
printf "%25s => %12s: %s gefunden\n", $_, $ausschliessen, (!/$ausschliessen/i ? ' nicht ' : '');
}
Struppi.
Eigentlich möchte ich einfach nur prüfen ob eine Variable einen bestimmten String enthält. ist dieser enthalten, soll mit dem nächsten weitergemacht werden.
Dazu ist index besser geeignet vor allem wesentlich schneller.
Struppi.