我试图映射文件中的所有组织条目,并收集标题的一部分,如果它与一些正则表达式匹配.
问题是字符串匹配总是返回nil.当我逐步使用edebug时,我可以看到其他一切都正常工作.
在这里,我尽可能地减少了问题:
(defun test () (let ((found nil)) (org-map-entries (lambda () (let ((heading (org-get-heading t t))) (when (string-match "[ \t]*>>>[ \t]*\\([A-Z0-9_-]+\\)" heading) (push (match-string 1 heading) found)))) nil '("test.org")) found))
test.org中的3行:
* >>> one * two * >>> three
字符串匹配工作正常,否则:
(string-match "[ \t]*>>>[ \t]*\\([A-Z0-9_-]+\\)" ">>> one") => 0
我试过的一些事情:
– 匹配前删除字符串属性.
– 实现围绕重新搜索 – 转发.
– 将正则表达式匹配移动到单独的函数.
– 用’mapcar’替换’org-map-entries’并在列表上进行测试,工作正常.
我正在使用GNU Emacs 24.3.1(x86_64-unknown-linux-gnu,GTK版本3.4.2)
任何提示将非常感激.