[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is it valid to use the zero-byte "^@" in regexps?
From: |
Nicolas Richard |
Subject: |
Re: Is it valid to use the zero-byte "^@" in regexps? |
Date: |
Wed, 18 Jun 2014 12:55:42 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.91 (gnu/linux) |
Thorsten Jolitz <tjolitz@gmail.com> writes:
>> I don't see why it wouldn't be valid, but I don't know. If it is
>> desirable is another question : it would be better to search for the
>> beginning, then search for the end with another regexp.
>
> That what I did initially, and what is of course much easier, but took
> twice (?) as long too ...
I'm surprised but I guess I'm being too naive.
>> Except NUL characters of course.
>
> i.e. zero-byte "^@"?
Yes, "NUL" is the name you find in most ASCII charts. "zero-byte" less
so, afaict.
> But Emacs can differentiate between NUL characters and the @ character -
Of course. One has ascii code 0, the other is 64.
NUL is represented by ^@ because of
http://en.wikipedia.org/wiki/Caret_notation
If you hit C-f with point before a NUL, you jump over it ; whereas if
you C-f with point before the two characters ^@ (i.e. not a NUL), cursor
only jumps over the ^.
> Often, but not always, the not matched source-blocks contain @
> characters (but not NUL chars). The strange thing is that the failed
> matching happens with these blocks being part of a really big
> testfile. When I isolate and copy them to a temp buffer and try to match
> them there, it just works.
If you have a reproducible recipe (even with a big file) it would
certainly help.
--
Nico.