[cl-ppcre-devel] report a bug

Xiangjun Wu netawater at gmail.com
Thu Jun 25 02:31:45 UTC 2009


In order to fix issue of montezuma,
http://code.google.com/p/montezuma/issues/detail?id=3, I suppose I found a
bug of cl-ppcre.

CL-USER> (cl-ppcre:scan
              (cl-ppcre:create-scanner
                 "(\\w+)*\\@\\w+") "______________________________________"
                          :start 0)
;; Evaluation aborted.

It hangs when the number of underscore hit a critical value.
I speculate that '\w' includes underscore in regular expression would
account for this
bug. and replace with other character of '\w' also has this problem.

CL-USER> (cl-ppcre:scan (cl-ppcre:create-scanner
               "(a\\w+)*\\@\\w+")
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
               :start 0)
;; Evaluation aborted.

but if I eliminate the last \w, it is OK.
CL-USER> (cl-ppcre:scan
              (cl-ppcre:create-scanner
                 "(_\\w+)*\\@") "_______________________________________"
                          :start 0)
NIL

I also check it in perl, Maybe perl is more efficient in regular expression
operation, I raise the number of
underscores, but it is OK.

$str = "john._______________________________________
__________________________________";

if ($str =~ m/(_*\w+)*\@\w+/)
{
   print "ok\n";
}

Please check it and give your comment.

片云天共远永夜月同孤
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cl-ppcre-devel/attachments/20090625/5a5a5593/attachment.html>


More information about the Cl-ppcre-devel mailing list