Liste des Groupes | Revenir à cl misc |
Rainer Weikusat <rweikusat@talktalk.net> wrote:Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:>
>
[...]
>Personally I think that writing bulky procedural stuff for something>
like [0-9]+ can only be much worse, and that further abbreviations
like \d+ are the better direction to go if targeting a good interface.
YMMV.
Assuming that p is a pointer to the current position in a string, e is a
pointer to the end of it (ie, point just past the last byte) and -
that's important - both are pointers to unsigned quantities, the 'bulky'
C equivalent of [0-9]+ is
>
while (p < e && *p - '0' < 10) ++p;
>
That's not too bad. And it's really a hell lot faster than a
general-purpose automaton programmed to recognize the same pattern
(which might not matter most of the time, but sometimes, it does).
It's also not exactly right. `[0-9]+` would match one or more
characters; this possibly matches 0 (ie, if `p` pointed to
something that wasn't a digit).
Les messages affichés proviennent d'usenet.