regexp bug (literal dot)
Luke Gorrie
luke@REDACTED
Tue Mar 26 10:14:31 CET 2002
Chris Pressey <cpressey@REDACTED> writes:
> On Mon, 25 Mar 2002 23:57:28 +0100
> Willem Broekema <willem@REDACTED> wrote:
>
> > Hi all,
> >
> > From what I understand, in regexps, "." means 'any char' and "\." means
> > a literal dot.
> >
> > So, the following is a bug:
> >
> > 170> regexp:match("a", ".").
> > {match,1,1}
> >
> > 171> regexp:match("a", "\.").
> > {match,1,1} % shouldn't match!
> >
> >
> > - Willem
>
> Erlang strings are quoted as well as regexps, so you probably want
>
> regexp:match("a", "\\.").
Another bug candidate:
regexp:match("foo", ".**").
Which doesn't terminate, because it tries to match 0x zero chars, then
1x zero chars, then 2x zero chars, etc.
Maybe useful the next time you need to do a denial-of-service attack
on an Erlang program :-) since this will make the emulator keep
allocating until the OS runs out of virtual memory.
Cheers,
Luke
More information about the erlang-questions
mailing list