Leser: 25
$suchstring = quotemeta $suchstring;
2009-11-27T17:49:06 DubuDie Lösung findet den $suchstring nicht, wenn er am Anfang oder am Ende von $pruefwert steht.
1 2 3 4 5
my $pruefwert = "Muster2;Muster1;Muster3"; my $suchstring = "Muster2"; if (";$pruefwert;" =~ /\;$suchstring\;/i) { print "gefunden!"; }
gefunden!
2009-11-27T17:58:59 DubuOh, sorry!
Ich hatte übersehen, dass du Semikolons beim $pruefwert hinzugefügt hast. Sehr geschickt! :-D
1 2 3 4 5 6 7 8 9 10 11 12 13
#! /usr/bin/perl use strict; use warnings; my $text = 'abc;def;ghi'; my $such = 'DEF'; # finde string $such in $text ohne Ruecksicht auf gross/KLEIN if ( index( lc($text), lc($such), 0 ) >= 0 ) { print "Treffer"; } else { print "kein Treffer"; }
if ($pruefwert =~ /\Q$suchstring/i) ...
2009-11-27T18:05:06 DubuEs ist die Frage, ob so etwas erlaubt/beabsichtigt wäre.
2009-11-27T18:13:55 LinuxerIMHO ist die Definition der Anforderungen nicht ausreichend formuliert, um so kategorisch Lösungen auszuschliessen, wie Du es betreibst.
1 2 3 4 5 6 7 8 9 10 11 12 13
#! /usr/bin/perl use strict; use warnings; my $text = '"a;bc";def;ghi'; my $such = 'bc";def'; #oder #my $such = 'def;ghi'; if (";$text;" =~ /\;$such\;/i) { print "Treffer;\n"; }
2009-11-27T18:19:53 LinuxerIMHO, legitime Daten, aber ebenfalls nicht korrekt. Mag zwar etwas konstruiert sein, aber auch nicht von der Hand zu weisen.
2009-11-27T18:36:39 LinuxerNur weil Du nicht die Erfahrungen gemacht hast, die ich gemacht habe, brauchst Du meine Vorschläge nicht kategorisch ablehnen oder als Unfug zu bezeichnen.
Ich werde mich wohl in Zukunft zurückhalten, in Beitragsfolgen zu antworten, in denen Du Deine Weisheit bereits zu Protokoll gegeben hast.
2009-11-27T18:29:58 biancaDein Beispiel ist praxisfern, weil in der Fragestellung eindeutig das Semikolon als Trennzeichen festgelegt wurde. Insofern würde niemals nach 'bc";def' gesucht werden.
2009-11-27T19:25:50 pqdaten kommen immer anders als man denkt. etwas weiter zu denken ist ganz im gegenteil sehr praxisnah, denn wenn man sich zu sehr auf eine interpretierte aufgabenstellung festlegt, kann einem ein skript irgendwann mal unerwartet um die ohren fliegen. wenn man ein paar jährchen erfahrung hat, denkt man halt weiter.
2009-11-27T17:51:29 LinuxerHi, alternativ zur Regex-Lösung:
Code (perl): (dl )1 2 3 4 5 6 7 8 9 10 11 12 13#! /usr/bin/perl use strict; use warnings; my $text = 'abc;def;ghi'; my $such = 'DEF'; # finde string $such in $text ohne Ruecksicht auf gross/KLEIN if ( index( lc($text), lc($such), 0 ) >= 0 ) { print "Treffer"; } else { print "kein Treffer"; }
perldoc -f index
perldoc -f lc
2009-11-29T20:11:04 jan999Ja, es ist richtig es soll ";" getrennt werden und in den Begriffen kommt das ";" NICHT vor !!!