Regulärer Ausdruck
Wicki
- perl
Hi,
in der Variablen $var habe ich Sonderzeichen x'09', x'0A', x'0B', x'0C',......
Der reg. Ausdruck
$var =~ /\x09/
liefert "true"
der Ausdruck
$var =~ /\x0A/
aber liefert "false", obwohl das Zeichen vorhanden ist.
Hat jemand dafür eine Erklärung?
Hi,
in der Variablen $var habe ich Sonderzeichen x'09', x'0A', x'0B', x'0C',......
Dein Post gibt mir ein Rätsel: Ich sehe keine Sonderzeichen. Eher Ausdrücke für Zahlen in hex-Darstellung.
Der reg. Ausdruck
Und dafür gibts bestimmt ne andere Lösung.
Hotti
Hi,
in der Variablen $var habe ich Sonderzeichen x'09', x'0A', x'0B', x'0C',......
Dein Post gibt mir ein Rätsel: Ich sehe keine Sonderzeichen. Eher Ausdrücke für Zahlen in hex-Darstellung.
Ich meine damit die nicht druckbaren Zeichen mit Asci-Wert unter 20 z.B. für NL und CR
Der reg. Ausdruck
Und dafür gibts bestimmt ne andere Lösung.
Und welche?
Wicky
hi,
Ich meine damit die nicht druckbaren Zeichen mit Asci-Wert unter 20 z.B. für NL und CR
Und dafür gibts bestimmt ne andere Lösung.
Und welche?
Da könntest Du auch mit numerischen Werten operieren. Z.B. liefert
unpack("C*", $bytes);
ein Array mit Zahlen von jeweils 0..255 für jedes einzelne Byte.
Hotti
Hallo,
Da könntest Du auch mit numerischen Werten operieren. Z.B. liefert
unpack("C*", $bytes);
ein Array mit Zahlen von jeweils 0..255 für jedes einzelne Byte.
Was soll dies bringen?
Nochmals:
Ich habe eine Variable, in der normalerweise sauberer Text steht.
Nun möchte ich abfragen, ob sich doch bestimmte (Steuer-)Zeichen mit Asci-Wert unter 20 im Text befinden.
Um zu sehen, ob das Zeichen mit asciwwert 09 vorhanden ist, frage ich
$var =~ /\x09/ ab und es liefert korrekt true, wenn das Zeichen vorhanden ist.
Das gleiche funktioniert beim Asciwert 11 (hex 0B) mit $var =~ /\x0B/
aber n i c h t beim Asciwert 10 (hex 0A) mit $var =~ /\x0A/.
Gruß
Wicky
Hi,
Ich habe eine Variable, in der normalerweise sauberer Text steht.
Nun möchte ich abfragen, ob sich doch bestimmte (Steuer-)Zeichen mit Asci-Wert unter 20 im Text befinden.
Um zu sehen, ob das Zeichen mit asciwwert 09 vorhanden ist, frage ich
$var =~ /\x09/ ab und es liefert korrekt true, wenn das Zeichen vorhanden ist.
Das gleiche funktioniert beim Asciwert 11 (hex 0B) mit $var =~ /\x0B/
aber n i c h t beim Asciwert 10 (hex 0A) mit $var =~ /\x0A/.
Das lässt ja eigentlich nur noch den Schluss zu, dass die Existenz des Bytewertes DEC 10/HEX 0A im Variableninhalt nicht real gegeben, sondern nur von dir herbei halluziniert ist ...
MfG ChrisB
Das lässt ja eigentlich nur noch den Schluss zu, dass die Existenz des Bytewertes DEC 10/HEX 0A im Variableninhalt nicht real gegeben, sondern nur von dir herbei halluziniert ist ...
Hast Du es getestet?
Wir haben nach dem 6-Augenprinzip festgestellt, dass es nicht erkannt wird!
Also bitte nicht solche herabwürdigende Aussagen!
Hi,
Das lässt ja eigentlich nur noch den Schluss zu, dass die Existenz des Bytewertes DEC 10/HEX 0A im Variableninhalt nicht real gegeben, sondern nur von dir herbei halluziniert ist ...
Hast Du es getestet?
Wie hast *du* es getestet?
Wir haben nach dem 6-Augenprinzip festgestellt, dass es nicht erkannt wird!
Also bitte nicht solche herabwürdigende Aussagen!
Ohne überprüfbaren Original-Testcode bitte keine „also unser Fehler ist das ganz sicher nicht“-Aussagen.
Und etwas mehr Humorverständnis bitte ebenfalls.
MfG ChrisB
hi,
Das gleiche funktioniert beim Asciwert 11 (hex 0B) mit $var =~ /\x0B/
aber n i c h t beim Asciwert 10 (hex 0A) mit $var =~ /\x0A/.
Seltsam. Bei mir tut das einwandfrei. Bin echt ratlos, warum das bei Dir nicht funktioniert und habe auch alles Mögliche versucht, mein Perl so zu verbiegen, dass es nicht mehr tut.
This is perl, v5.6.1 built for MSWin32-x86-multi-thread
Hast Du ein anderes Perl?
Hotti
Hi,
in der Variablen $var habe ich Sonderzeichen x'09', x'0A', x'0B', x'0C',......
Der reg. Ausdruck
$var =~ /\x09/
liefert "true"
der Ausdruck
$var =~ /\x0A/
aber liefert "false", obwohl das Zeichen vorhanden ist.
Nö.
my $string = "A\x0aB\x0aC\x0aD";
my $count = () = $string =~ /\x0A/mg;
printf("%d Zeichen mit %d mal \\x0a\n", length($string), $count);
liefert das erwartete Ergebnis:
8 Zeichen mit 3 mal \x0a
Wie hast Du das Vorhandensein des 0x0a verifiziert?
cu,
Andreas