2010-08-09 62 views
0

搜索filename . "myfile.txt"的elisp:搜索与不平衡报价字符串导致Lisp的错误

(regexp-quote "filename \. \"\\(.+\\)\"") 
"filename \\. \"\\\\(\\.\\+\\\\)\"" 

搜索filename . "myfile.txt(不包括最后一个引号)

(regexp-quote "filename \. \"\\(.+\\)") 
Debugger entered--Lisp error: (invalid-read-syntax ") or . in a vector") 
    read(#<buffer processing-files.el>) 
    preceding-sexp() 
    eval-last-sexp-1(t) 
    eval-last-sexp(t) 
    eval-print-last-sexp() 
    call-interactively(eval-print-last-sexp nil nil) 
+0

下面是另一个简单的例子失败

 (re-search-forward "\"" (point-max) t) Debugger entered--Lisp error: (scan-error "Unbalanced parentheses" 2308 1) scan-sexps(2309 -1) forward-sexp(-1) preceding-sexp() eval-last-sexp-1(nil) eval-last-sexp(nil) call-interactively(eval-last-sexp nil nil) 
我使用 GNU Emacs的24.0.50.1(I386 -mingw-nt6.1.7600)2010-08-04上 LENNART-69DE564 Windows 7 Ultimate – dericbytes 2010-08-09 09:14:28

+0

当emacs加载时没有我的个人配置文件 – dericbytes 2010-08-09 09:27:20

+0

只是注释掉你的配置文件的不同部分,直到你缩小它。 – phils 2010-08-09 21:52:41

回答

0

我认为你误解了正则表达式引号的意思是:

来自doc(Ch Cf regexp-quote RET)

返回一个正则表达式字符串,它完全匹配字符串,而不是其他字符串。

或者我误解了你的问题。

无论如何,如果你想搜索有一些功能搜索向后正则表达式,搜索前进,正则表达式