Anwendung von =~ //
JOnas
- perl
Hi
Also mit dem regulären ausdruck =~ // kann ich ja in einer Variablen nach einem bestimmten musster suchen. zB
if ($file =~ /[A-Z]/) { das machen }
Nun möchte ich eine Bedingung, dass wenn in der Variable $file der Ausdruck ".." (ohne ") vorkommt, die if Bedingung erfüllt ist. aber wie zum Teufel mache ich das? Hab schon alles Probiert, aber klappt nie.
zb.
=~ /[..]/
=~ /../
=~ /'..'/
Die Bedingung ist schon immer dann erfüllt, wenn nur ein Punkt "." in $file vorkommt.
Ich brauche Hilfe ,)
Gruss
Jonas
Hallo Jonas,
Die Bedingung ist schon immer dann erfüllt, wenn nur ein Punkt "." in $file vorkommt.
In den // wird ein regulärer Ausdruck erwartet (perldoc perlre), in denen der Punkt die Bedeutung "ein beliebiges Zeichen" hat. Daher musst Du den Punkt maskieren:
if ($file =~ /./) {
}
Viele Grüße,
Christian
Hi Christian,
In den // wird ein regulärer Ausdruck erwartet (perldoc perlre), in denen der Punkt die Bedeutung "ein beliebiges Zeichen" hat. Daher musst Du den Punkt maskieren:
if ($file =~ /./)
Ergänzung:
Wenn er zwei Punkte hintereinander möchte, könnte es denke ich auch so aussehen:
if ($file =~ /[.]{2}/)
Viele Grüße
Torsten
Hallo Torsten,
Wenn er zwei Punkte hintereinander möchte, könnte es denke ich auch so aussehen:
if ($file =~ /[.]{2}/)
<mode typ="klugscheisser">
Wenn Du schon eine Zeichenklasse nimmst, dann brauchst Du den Punkt auch nicht mehr escapen:
if ($file =~ /[.]{2}/)
Außerdem brauchst Du hier gar keine Zeichenklasse, dann musst Du den Punkt aber wieder escapen:
if ($file =~ .{2]/)
</mode>
Viele Grüße,
Christian
Hi Christian,
<mode typ="klugscheisser">
Pah!
Wenn Du schon eine Zeichenklasse nimmst, dann brauchst Du den Punkt auch nicht mehr escapen:
Man lernt eben nie aus, deswegen frug ich.
Außerdem brauchst Du hier gar keine Zeichenklasse, dann musst Du den Punkt aber wieder escapen:
if ($file =~ .{2]/)
<mode style="schadenfreude">
Bist du dir _ganz_ sicher, dass der oben stehende RegEx korrekt ist?
</mode>
Viele Grüße
Torsten
Hallo Torsten,
if ($file =~ .{2]/)
<mode style="schadenfreude">
Bist du dir _ganz_ sicher, dass der oben stehende RegEx korrekt ist?
</mode>
*argh* *mist* *grummel*
Viele Grüße,
Christian
(Asche über mein Haupt)
hi hi Jonas
=~/../ könnte klappen
der punkt ist ein meta-zeichen (steht für ein zeichen) und wenn du den punkt selber suchst must du ihn maskieren.
guck auch mal hier
http://www.netzwelt.com/selfhtml/cgiperl/sprache/regexpr.htm
bis bis roman