我想用重复的字母作为分隔符,例如,分割字符串
"123aaaa23a3"应该被分割('123', '23a3'),而"123abc4"应保持不变.
所以我尝试了这个:
@s = split /([[:alpha:]])\1+/, '123aaaa23a3';
Run Code Online (Sandbox Code Playgroud)
但这会回来'123', 'a', '23a3',这不是我想要的.现在我知道,这是因为最后'a'在'aaaa'由括号捕获并因此被保留下来split().但无论如何,我无法添加类似的东西,?:因为[[:alpha:]]必须捕获以供后面参考.我该如何解决这种情况?
我想做一个计时器,像这样:
(defun dumb (y)
(defun P () (print y))
(run-with-timer 0 5 'P))
(dumb 5)
Run Code Online (Sandbox Code Playgroud)
然后 Emacs 给了我这个错误:
Error running timer `P': (void-variable y)
Run Code Online (Sandbox Code Playgroud)
我猜问题是在该(defun P () (print y))行中,变量y没有被评估,所以当我运行时(dumb 5),函数P尝试打印y未定义的,而不是文字5。但我不知道如何解决它。任何的想法?