在cl-ppcre中,如何发现正则表达式中的寄存器组数?

Par*_*ife 4 regex common-lisp

使用cl-ppcre,我想发现正则表达式中的寄存器组数,而不执行任何匹配.这可能吗?怎么样?

Xac*_*ach 6

如果您将正则表达式作为字符串,则可以使用cl-ppcre:parse-string它将其转换为可以检查出现的性别:REGISTER,例如

(count :register (alexandria:flatten (ppcre:parse-string "^\\d (\\S+|(x|y))")))
Run Code Online (Sandbox Code Playgroud)

如果它已经创建了create-scanner,我认为你没有很多选择; 该对象是一个不透明的闭包.