Elisp:搜索具有不平衡报价的字符串会导致Lisp错误

时间:2010-08-09 09:03:23

标签: regex elisp

搜索filename . "myfile.txt"

(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)

1 个答案:

答案 0 :(得分:0)

我认为你误解了regexp-quote的含义:

来自doc(C-h C-f regexp-quote RET)

返回一个正好与字符串匹配的正则表达式字符串。

或者我误解了你的问题。

无论如何你想要搜索有一些函数search-backward-regexp,search-forward-regexp