Wicki: Regulärer Ausdruck

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?

  1. 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

    1. 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

      1. 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

        1. 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

          1. 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

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. 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!

              1. 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

                --
                RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
          2. 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

  2. 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

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.